Gnu find:将-prune应用于与外部文件中的模式匹配的目录

时间:2013-05-03 18:39:57

标签: bash shell grep find pipe

我想知道是否有更有效的方法从外部文件中获取与-prune一起使用的目录模式:

find . \( -type d -a -exec sh -c "echo \"{}\" | grep -qEx -f patterns.prune" \; \) -prune -o \( <further checks> \)

这可行,但由于每次前一场比赛都使用了一个shell / pipe,因此当然非常慢。那么有比上面更优雅的方式还是我真的必须将模式文件的行链接作为命令行开关进行查找?

感谢。

1 个答案:

答案 0 :(得分:1)

你可以尝试在运行结束时输入grep,只调用一次,例如:

find . <your_other_conditions> | grep -v -f patterns.prune

这可能不适用于您的特定情况,因为它现在将A)在修剪目录下找到所有内容(尽管您可以通过调整patterns.prune来解决这个问题)和B)从 find中解除控制,这样你就不能在结果上使用find的内置函数(例如 -exec )。