如何列出与 glob 不匹配的文件?
例如,假设我有一个包含数百个文件的目录,其中 97% 的文件扩展名为.png
。
我知道我可以使用以下命令列出 PNG 文件:
ls *.png
但是,我如何列出相反的文件,即仅列出非 PNG 文件?
答案1
使用 ls:
ls -I "*.png"
引号对于阻止 shell 评估*
使用查找:
find . -not -name "*.png"
如果您有子目录(包含文件),您可能需要限制搜索:
find . -maxdepth 1 -type f -not -name "*.png"
在哪里
-maxdepth 1
将其限制在当前目录-type f
仅允许打印文件