如何使用一个命令运行(执行)具有相同文件名通配符的多个文件?

如何使用一个命令运行(执行)具有相同文件名通配符的多个文件?

我正在使用一个桌面 Windows 程序,将多个 Linux ASCII 文本作业文件复制到 AWS CloudFormation(EC2,Linux),并将数据复制到子文件夹。

所有 ASCII 文本“作业文件”都包含两行,例如:

cd folder1
~/myexecutable --config conf.txt --otherdata ~/MainDataFolder/data.abct --out data_out.abc

所有作业文件的文件名中都有相同的通配符“myjob”,例如:

myjob1
myjob2
myjob3

有没有单身的Linux 命令将执行文件名中带有相同通配符的所有作业文件?

可能是这样的:

exec myjob*

答案1

您可以xargs像这样使用命令:

echo ./myjob* | xargs -n 1 sh

这里echo将列出所有与通配符匹配的文件名myjob*到标准输出。该命令xargs将获取每个单词从标准输入中对每一个运行(该参数-n 1表示“最多使用每个命令行 1 个参数“)像这样的命令sh

sh ./myjob1
sh ./myjob2
sh ./myjob3

--

另一个但本质上类似的命令是:

xargs -n 1 sh <<<$(echo ./myjob*)

相关内容