<分区>
我有以下查找
命令:
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/
<分区>
我有以下查找
命令:
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/
最佳答案
使用 -prune
来避免递归到您不想遵循的分支。
find /mnt/F_11 -name DONOTENTER -prune -o \
-type f \( -iname '*.xls' -o -iname '*.xlsx' \) -print
请注意末尾的显式 -print
—— 这很重要,否则隐式打印操作会覆盖两个分支。
关于linux - 在查找命令中排除子路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660452/