如何让xargs执行两个命令?

问题描述:

我试过这个如何让xargs执行两个命令?

s3cmd ls s3:// somebucket/data/awk'{print $ 4}'| xargs的-I %S s3cmd -v -c s3.cfg CP%s '的S3:// anotherbucket /数据/' & & s3cmd -c s3.cfg RM%S -v

它不工作,当然,因为第二个命令(s3cmd rm)不被视为xargs参数的一部分...

我该怎么做?

背景是在我的情况下,s3cmd的移动操作看起来不是删除源文件,所以我想用一个副本和一个删除来替换它,这看起来可行。

我最终只是envoking SH(把那一抹形成xarg手册页)和工作从那里,像这样:

s3cmd LS S3:// somebucket /数据/ | awk'{print $ 4}'| xargs -n 1 sh -c' s3cmd -v -c s3.cfg cp $ 0's3:// anotherbucket/data /'; s3cmd -c s3.cfg rm $ 0 -v';

+0

你也可以使用'parallel'而不是'xargs'。问:你为什么不接受你自己的答案? – 2014-06-13 18:09:24

+0

配合,您的大写字母键似乎已损坏。 – Jens 2016-04-14 20:12:00