为什么ls --ignore
不会忽略这个模式?
看下面的例子:
mkdir books cd books touch books_abby.csv touch books_karen.csv touch books_david.csv touch books_tom.csv
这会创build四个文件:
$ ls books_abby.csv books_david.csv books_karen.csv books_tom.csv
如果你想忽略所有包含“tom”的文件名并列出它们, books_tom.csv
仍然会返回:
$ ls *.csv --ignore="*tom*" books_abby.csv books_david.csv books_karen.csv books_tom.csv
预期的结果是包含“tom”的文件被省略:
$ ls *.csv --ignore="*tom*" books_abby.csv books_david.csv books_karen.csv
ls
的--ignore
选项似乎可以正常工作,但是当您在同一个ls
命令中将它与*.csv
混合时,问题似乎就会出现。
所以,你可以使用相同的结果(因为所有的文件以.csv结尾):
$ ls *.csv --ignore="*tom*" books_abby.csv books_david.csv books_karen.csv
如果您不想在输出中显示其他文件扩展名,则可以尝试:
$ ls !(*tom*).csv books_abby.csv books_david.csv books_karen.csv