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.
我正在尝试使用该find命令搜索一长串不同的文件扩展名和文件名,例如*.pl, *.sh, *.jar, FileA, FileB...
find
*.pl
*.sh
*.jar
FileA
FileB
我的 find 命令如下所示:
find $dir -name '*.pl' -o -name '*.sh' -o -name ...
有没有更优雅的方式来做到这一点而不会发送垃圾邮件-o -name?我最终希望拥有一组这样的文件名和扩展名,并find寻找每一个,因为这将更易于维护和阅读。
-o -name
你可以用 更简洁地做到这一点-regex,例如你的例子:
-regex
find -E $dir -regex '.*\.(pl|sh|jar)' -o -regex '.*/File(A|B)'
请注意,Linux find 缺少-E开关 - 如果您使用的是 Linux,则必须使用-regextype posix-extended它来代替-E(感谢 @Ansgar 指出这一点)。
-E
-regextype posix-extended