全局不匹配?

全局不匹配?

如何列出与 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仅允许打印文件

相关内容