2011-03-02 2 views
0

누군가가 설명 할 수 입력 :xargs를하고 전직 명령 파일의 수에 전직 명령 스크립트를 실행하려고 할 때,이 작품 왜

ls *|xargs -i ex {} <excmds 

을 :

for x in `ls *`;do ex $x <excmds;done; 

을하지만, 이것은하지 않습니다 먼저 ex를 실행하고 각 파일에 대해 "excmds"명령을 실행합니다. 둘째, 파일의 내용은 변경되지 않지만 파일은 변경되지 않습니다. 리다이렉트가 문제라고 생각하고 xargs를 실행할 때마다 동작하지 않습니까? xargs로 할 수있는 방법이 있습니까? (아직 내가 xargs를에 제기 한 또 다른 질문은 - 어쩌면 내가 :(사용을 중지한다)

+1

** ** –

+0

흠, OK, 그건. 이제 조금은 분명해 보입니다. xargs를 사용하는 방법을 알고 싶지만이 질문은 대답이 아니라 주석이어야합니다. –

+0

조 (Joe) 나는 진짜 대답이 없기 때문에 답변을하지 못했습니다 (이 의견 만). 'xargs'가이 작업을위한 잘못된 도구 인 것 같습니다. 각 파일에 대해 정확히 한 번 * 명령을 실행하려고합니다. 'xargs'는 여러 입력을 동시에 처리 할 수있는 명령을 실행하는 데 유용합니다. –

답변

0

사용 GNU 병렬 :

ls * | parallel ex {} \<excmds 

시계 더 배울 수있는 소개 영상 : http://www.youtube.com/watch?v=OpaiGYxkSuQ

(10) 초 설치 : ls``의 출력 대신 excmds``로부터 입력을 읽을 xargs`이 경우`에서

wget pi.dk/3 -qO - | sh -x 
관련 문제