全局不匹配?

ma1*_*w28 4 find ls

如何列出与 glob 不匹配的文件?

例如,假设我有一个包含数百个文件的目录,其中 97% 的文件扩展名为.png.

我知道我可以列出 PNG 文件:

ls *.png
Run Code Online (Sandbox Code Playgroud)

但是,我如何列出相反的文件,即只列出非 PNG 文件?

Jay*_*Jay 6

使用 ls:

ls -I "*.png"
Run Code Online (Sandbox Code Playgroud)

引号对于停止 shell 评估很重要 *

使用查找:

find . -not -name "*.png"
Run Code Online (Sandbox Code Playgroud)

如果您有子目录(包含文件),您可能需要限制搜索:

find . -maxdepth 1 -type f -not -name "*.png" 
Run Code Online (Sandbox Code Playgroud)

在哪里

  • -maxdepth 1 将其限制为当前目录
  • -type f 只允许它打印文件