В более крупном скрипте для постобработки некоторых данных моделирования у меня была следующая строка:
parallel bnzip2 -- *.bz2
Который, если я parallel
правильно понимаю (а я могу и не понимать), должен запустить n-core threads программы для всех файлов с указанным расширением. Вы можете заметить, что я неправильно написал команду bunzip2
. Я ожидал бы предупреждения или сообщения об ошибке, но он молча терпит неудачу. Так задумано? Как мне не попасться на это в будущем?
Обновлять:
Возможно, у меня parallel
установлено что-то другое, чем я думаю:
> parallel --version`
parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
run specified commands in parallel
Страница руководства parallel
в моей системе выдает:
parallel(1) parallel(1)
NAME
parallel - run programs in parallel
....
AUTHOR
Tollef Fog Heen
Кажется, это такнетверсия GNU.
решение1
Вас смутила параллель Толлефа из moreutils. Смотритеhttps://www.gnu.org/software/parallel/history.html
Вы можете установить GNU Parallel просто:
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
Посмотрите ознакомительные видеоролики по GNU Parallel, чтобы узнать больше: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
решение2
(Я бы прокомментировал это, но у меня нет на это привилегий.)
Вы также, вероятно, можете просто использовать parallel --gnu
. Вы сказали, что Ubuntu 12(.04?) использует версию Толлефа, но на самом деле это реализация gnu, просто по какой-то причине она по умолчанию использует синтаксис Толлефа.
Я добавил его alias parallel='parallel --gnu'
в свой скрипт входа, чтобы мне больше не пришлось с этим возиться.