2013-04-23 2 views
0

나는이xargs가 두 개의 명령을 실행하게하려면 어떻게해야합니까?

s3cmd의 LS의 S3를 시도 : // somebucket/데이터/| awk '{print $ 4}'| xargs를 -I %의 s3cmd -v -c s3.cfg CP %의 'S3 : // anotherbucket/데이터 /'& & s3cmd 는 않습니다 -c s3.cfg RM %의 -v

하지 물론 두 번째 명령 (s3cmd rm)이 xargs 인수의 일부로 처리되지 않기 때문에 ...

어떻게해야합니까?

내 경우에있어서 s3cmd의 이동 작업이 원본 파일을 삭제하지 않는 것처럼 보입니다. 따라서 복사 및 삭제로 대체하려고합니다. 작동하는 것으로 보입니다. 난 그냥 쉬 envoking 결국

답변

0

합니다 (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

'xargs'대신 '병렬'을 사용할 수도 있습니다. Q : 왜 당신 자신의 대답을 받아들이지 않습니까? –

+0

메이트, 대문자 키가 깨져있는 것 같습니다. – Jens