Как использовать 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 флаг заставляет это работать, как сказал тердон.