로 가득 찬 디렉토리가 있는데 .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
선택 사항 이지만 -t
stderr에서 실행되는 명령을 보여주기 때문에 유용합니다.
나는 당신이 뭔가 잘못하고 있는지 잘 모르겠습니다. :::
(그것은 동등하다는 것을 의미합니다) 맨 페이지의 예제조차도 나에게 도움이 되지 않습니다.
업데이트: --gnu
플래그를 사용하면 terdon이 말한 대로 작동합니다.