如何在查找执行期间忽略目录?例如有以下内容:
.
├── fold
│ └── something
└── something
fold/something - 目录./something - 文件
我这样做find . -name "something"
,我不会忽略折叠/某事,因为这是目录
你测试一个目录-type d
。你用 来反转测试的意义!
。
所以:
find . -name something ! -type d
这会找到一切所谓something
的或当前目录下,但它不会报告任何目录叫something
。
如果您想./fold/something
专门忽略,请使用否定-path
测试:
find . -name something ! -path ./fold/something
请注意,您在-path
测试中使用的路径名应与顶级搜索路径 ( .
)中的完整路径匹配。
如果您想停止find
报告任何名为 的目录something
,并阻止它进入这些目录,请使用-prune
:
find . \
-name something -type d -prune -o \
-name something -print
或者,等效地,
find . -name something \( -type d -prune -o -print \)
这将首先修剪something
从搜索树调用的任何找到的目录。如果正在检查的当前路径不是名为 的目录something
,而是名为 的其他目录something
,则将其打印出来。无论文件类型如何,这都不会找到something
在 下调用的任何内容./fold/something
(因为./fold/something
会从搜索树中删除)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句