Find

全域不匹配?

  • July 11, 2012

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

例如,假設我有一個包含數百個文件的目錄,其中 97% 的文件副檔名為.png.

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

ls *.png

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

使用 ls:

ls -I "*.png"

引號對於停止 shell 評估很重要*

使用查找:

find . -not -name "*.png"

如果您有子目錄(帶有文件),您可能希望限制搜尋:

find . -maxdepth 1 -type f -not -name "*.png" 

在哪裡

  • -maxdepth 1將其限制在目前目錄
  • -type f只允許它列印文件

引用自:https://serverfault.com/questions/406942