如何在文件夹中查找特定扩展名以外的任何文件

Pra*_*r-M 0 bash find

我有一个混合了不同扩展名 ( .sh .txt .pdb)的文件夹。我想找出除pdbqt

我知道我可以使用以下代码在文件夹中找到 pdbqt

find -name "*.pdbqt" -type f

Run Code Online (Sandbox Code Playgroud)

但我希望找出所有与此不匹配的文件。通常!对此有所帮助。把它放在哪里!?或者是否还有其他优雅的解决方案?

Ste*_*itt 5

!要否定测试前云:

find ! -name "*.pdbqt" -type f
Run Code Online (Sandbox Code Playgroud)

请注意,许多实现都find需要指定起始路径(根据 POSIX 的要求):

find . ! -name "*.pdbqt" -type f
Run Code Online (Sandbox Code Playgroud)

否定只适用于最接近的表达式,所以-type f这里不否定。要将否定应用于多个表达式,请使用括号(由优先顺序决定)。