我想从查找搜索树中排除一个目录。.aaa是当前目录中隐藏的子目录.我想排除aaa_rc_bbb, xxx_rc_xxx和更多包含rc的子目录。但是它仍然没有忽略并给出包含rc子目录的结果。就好像*rc*通配符不起作用一样。
find -L /students/projects/myname/ -name .aaa -prune -o -path */*/class_project/*/*/pikachu/*/*/*rc*/ -prune -o -path */*/class_project/*/*/pikachu/*/*/bambi/bambi.txt | head -n50 | xargs ls。
另外,我希望查找仅在此路径中搜索:*/*/class_project/*/*/pikachu/*/*/bambi/bambi.txt
请帮帮我。我做错什么了吗?
发布于 2018-06-23 11:25:26
您的-path模式以斜杠结尾。find检查的任何路径名都不会以斜杠结尾,因此模式将永远不会匹配任何内容。
若要修剪任何名为.aaa的目录和名称为rc的任何目录,请执行以下操作:
find -L /students/projects/myname \
-type d '(' -name '.aaa' -o -name '*rc*' ')' -prune -o -print只查看路径*/*/class_project/*/*/pikachu/*/*/bambi/bambi.txt:
find -L /students/projects/myname \
-type d '(' -name '.aaa' -o -name '*rc*' ')' -prune -o \
-path '*/*/class_project/*/*/pikachu/*/*/bambi/bambi.txt' -print这假定bambi.txt位于
/students/projects/myname/*/*/class_project/*/*/pikachu/*/*/bambi/bambi.txt注意find命令中对模式的引用。如果没有引号,shell将尝试在调用find之前将模式扩展到路径名列表,这可能会导致混淆find,或者导致某些shell出现错误。
https://unix.stackexchange.com/questions/413245
复制相似问题