でいっぱいのディレクトリがあり.gz
、GNU parallel を使用して各アーカイブを並列に展開したいと考えています。 しかし、何も達成できませんでした。
私は試した
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
(root として):
echo "--gnu" > /etc/parallel/config
また、の出力を解析しないでくださいls
。、上記のようなグロブを使用するか、find
代わりに以下を使用します。
find . -name "*gz*" -print0 | parallel -q0 gunzip
答え2
これを行うと、次のようになります:
ls *.gz | parallel -t gunzip
は-t
オプションですが、stderr で実行されるコマンドを表示するので便利です。
何か間違ったことをしているかどうかはわかりませんが:::
(同等であるはずです)、マニュアル ページの例でさえ機能しません。
更新:--gnu
フラグにより、terdon が言ったとおりに機能します。