在find命令中排除子路径

时间:2015-09-18 20:24:20

标签: linux unix find

我有以下find命令:

find /mnt/F_11 -type f \( -iname '*.xls' -o -iname '*.xlsx' /)

如何找到/mnt/F_11中的所有项目,而不是/mnt/f_11/DONOTENTER/中的所有项目?

换句话说,我希望它能够搜索:

YES /mnt/F_11
YES /mnt/F_11/somepath/
YES /mnt/F_11/somepath/other/
NO  /mtn/F_11/DONOTENTER/

1 个答案:

答案 0 :(得分:2)

使用-prune来避免递归您不想关注的分支。

find /mnt/F_11 -name DONOTENTER -prune -o \
     -type f \( -iname '*.xls' -o -iname '*.xlsx' \) -print

注意最后的显式-print - 这很重要,否则隐式打印操作会涵盖两个分支。