我有一个目录,里面装满了.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 所说的那样工作。