bash:使用模式一次获取所有文件

时间:2013-05-15 08:11:45

标签: bash pattern-matching

我有一个脚本,它将要分析的文件列表作为参数。它可以是任意数量的文件。

$ ./myScript file1 file2 ... fileN

现在,我必须在大量文件(~30)上运行它,其路径可以很容易地用模式来利用。使用find我可以逐个找到它们并在每个脚本上应用脚本,但我想要的是将它们全部带走并运行脚本对所有这些< / strong>立刻。

我应该怎么做?

2 个答案:

答案 0 :(得分:4)

find ... -exec ./myScript {} +

如果匹配太多(即命令行太长),可能会导致对myScript的多次调用,但是你几乎无法避免多次无论如何调用那个案例(没有将模式本身作为参数传递给myScript并在内部进行模式匹配。)

答案 1 :(得分:2)

您是否尝试过使用$()将已找到的参数列表放入数组中?

我曾经使用javac -d . $(find . -name '*.java' -a ! -name '.*')来编译目录中的所有java文件。