如何使用 find 按名称排除目录?

Egy*_*din 7 bash find

我的系统上有很多目录,结构如下:

\-----data
       \------- 001abc
       \------- 002abc
       \------- 003abc
       \------- 004abc
       \------- 005abc
       \ ....
Run Code Online (Sandbox Code Playgroud)

当我想找到某个目录时,我只需输入,find . -iname "002abc*"但如何找到排除某些名称匹配的目录?

在 MySQL 中是这样的 select * from folder where filename != '0021bc'

ger*_*ijk 9

!find命令中使用以否定(反转)后面的选项。在你的情况下:

find . ! -iname "002abc*"
Run Code Online (Sandbox Code Playgroud)

和可选的,只有匹配的文件夹:

find . ! -iname "002abc*" -type d
Run Code Online (Sandbox Code Playgroud)

将列出所有文件夹,除了名称与模式匹配的文件夹002abc*

!可以是有时壳脚本有问题的,所以作为Flimm指出,所述-not参数是一个非常有用的同义词它。

  • `!` 的同义词是 `-not`,像这样:`find 。-not -iname "002abc*"` (3认同)