如何使用重复参数调用xargs,参数之间没有空格

时间:2018-07-13 20:45:14

标签: xargs

我试图区分两个目录,并执行命令以将丢失的文件从一个目录复制到另一个目录。

这是我尝试执行的命令:

diff -r . $TARGET |
  fgrep \$1.class |
  awk '{ str = sprintf("%s/%s", $3, $4); sub(":","",str); sub("./","",str); print str;}' |
  xargs -I@ echo cp @ '$TARGET/' @

这当前导致以下输出:

cp validators/ProductControlsValidator$1.class $TARGET/ validators/ProductControlsValidator$1.class

如果我在'$TARGET/'之后删除空格,则会得到$TARGET/@(并且参数不会扩展)。

幸运的是,仅缺少一些文件,因此我手动进行了此操作。 我想确定一个用于生成和执行这些复制命令的命令,以便将来可以自动执行。

请注意,我必须保留中间路径名-它不仅仅是文件名。

0 个答案:

没有答案