gunzip과 함께 GNU를 병렬로 사용하는 방법

gunzip과 함께 GNU를 병렬로 사용하는 방법

로 가득 찬 디렉토리가 있는데 .gz, 각 아카이브를 GNU 병렬과 병렬로 확장하고 싶습니다. 그러나 나는 아무것도 달성하지 못했습니다.

나는 노력했다

parallel 'gunzip {}' ::: `ls *.gz`
parallel gunzip `ls *.gz`

결과가 없으면 bash는 나에게 다음과 같이 말합니다.

/bin/bash: archive1.gz: command not found
...

내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사해요

답변1

나는 찾았다이것, 플래그 사용을 제안합니다 --gnu.

parallel --gnu gunzip  ::: *gz

이것이 작동한다면 (루트로서) 대신에 /etc/parallel/config그 내용을 삭제하거나 변경해야 합니다 :--gnu--tollef

echo "--gnu" > /etc/parallel/config

또한,의 출력을 구문 분석하지 마십시오 ls., 위와 같이 또는 find대신에 globbing을 사용하십시오.

find . -name "*gz*" -print0 | parallel -q0 gunzip 

답변2

이렇게 하면 다음과 같이 작동합니다.

   ls *.gz | parallel -t gunzip

선택 사항 이지만 -tstderr에서 실행되는 명령을 보여주기 때문에 유용합니다.

나는 당신이 뭔가 잘못하고 있는지 잘 모르겠습니다. :::(그것은 동등하다는 것을 의미합니다) 맨 페이지의 예제조차도 나에게 도움이 되지 않습니다.

업데이트: --gnu플래그를 사용하면 terdon이 말한 대로 작동합니다.

관련 정보