我想知道是否有一种更有效的方法来从外部文件获取使用-prune的目录模式:
find . ( -type d -a -exec sh -c "echo "{}" | grep -qEx -f patterns.prune" ; ) -prune -o ( <further checks> )
可以工作,但是由于使用shell/管道进行之前的每个匹配,因此速度非常慢。那么,是否有比上面更优雅的方法,或者我真的必须将模式文件的行链接为find的命令行开关?
谢谢。
您可以尝试在运行结束时管道到grep,只调用它一次,例如:
find . <your_other_conditions> | grep -v -f patterns.prune
这可能不适用于您的特定情况,因为它现在将A)查找已修剪目录下的所有内容(尽管您可以通过调整patterns.prune来修复此问题)和B)解除对find的控制,因此您不能在结果上使用find的内置(例如-exec)