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

Другие вопросы по тегам