如何让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';
你也可以使用'parallel'而不是'xargs'。问:你为什么不接受你自己的答案? – 2014-06-13 18:09:24
配合,您的大写字母键似乎已损坏。 – Jens 2016-04-14 20:12:00