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