2

我正在尝试使用该find命令搜索一长串不同的文件扩展名和文件名,例如*.pl, *.sh, *.jar, FileA, FileB...

我的 find 命令如下所示:

find $dir -name '*.pl' -o -name '*.sh' -o -name ...

有没有更优雅的方式来做到这一点而不会发送垃圾邮件-o -name?我最终希望拥有一组这样的文件名和扩展名,并find寻找每一个,因为这将更易于维护和阅读。

4

1 回答 1

3

你可以用 更简洁地做到这一点-regex,例如你的例子:

find -E $dir -regex '.*\.(pl|sh|jar)' -o -regex '.*/File(A|B)'

请注意,Linux find 缺少-E开关 - 如果您使用的是 Linux,则必须使用-regextype posix-extended它来代替-E(感谢 @Ansgar 指出这一点)。

于 2013-07-11T15:19:47.880 回答