Как использовать GNU параллельно с gunzip
У меня есть каталог, полный .gz
Я хочу расширить каждый архив параллельно с GNU параллельно. Однако я ничего не добился.
Я старался
parallel 'gunzip {}' ::: `ls *.gz`
parallel gunzip `ls *.gz`
без результатов, bash говорит мне:
/bin/bash: archive1.gz: command not found
...
Что я делаю неправильно?
Спасибо
2 ответа
Я нашел это, что предлагает использовать --gnu
флаг:
parallel --gnu gunzip ::: *gz
Если это работает, вы должны либо удалить /etc/parallel/config
или измените его содержимое на --gnu
скорее, чем --tollef
(как корень):
echo "--gnu" > /etc/parallel/config
Кроме того, никогда не анализируйте вывод ls
,, используйте шевеление, как у меня выше или find
вместо:
find . -name "*gz*" -print0 | parallel -q0 gunzip
Делать это работает:
ls *.gz | parallel -t gunzip
-t
необязателен, но полезен, так как показывает команды, которые выполняются на stderr.
Я не уверен, что вы делаете что-то не так :::
должен работать (это должно быть эквивалентно), но даже примеры на странице руководства не работают для меня.
Обновление: --gnu
флаг заставляет это работать, как сказал тердон.