Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道是否有一种更有效的方法可以从外部文件中获取与 -prune 一起使用的目录模式:
find . \( -type d -a -exec sh -c "echo \"{}\" | grep -qEx -f patterns.prune" \; \) -prune -o \( <further checks> \)
这很有效,但由于之前的每场比赛都使用了外壳/管道,因此速度当然非常慢。那么有没有比上述更优雅的方法,或者我真的必须将模式文件的行链接为 find 的命令行开关?
谢谢。
您可以尝试在运行结束时通过管道连接到 grep,只调用一次,即:
find . <your_other_conditions> | grep -v -f patterns.prune
这可能不适用于您的特定情况,因为它现在 A) 也可以在修剪的目录下找到所有内容(尽管您可以通过调整 patterns.prune 来解决此问题)和 B) 解除对find的控制,这样您就不能使用在结果中查找内置函数(例如-exec)。