Делаем скрипт на Bash параллельным с помощью xargs

Сентябрь 16, 2010
Соединения

Тем, кто когда-нибудь пытался написать параллельный скрипт на Bash, должен быть знаком параметр -P утилиты xargs. В сочетании с find он позволяет выполнять заданную команду для каждого файла, распределяя эти команды между указанным количеством процессов. Эта схема распараллеливания идеально подходит, если нужно, скажем, сковертировать все файлы в директории.

Когда я начал писать такие скрипты, то стал испытывать определенное неудобство. Дело в том, что в большинстве случаев команда, подаваемая на вход xargs, оказывается сложнее вызова определенной утилиты с аргументами. То и дело получается целый набор команд, особенно если требуется отображать ход выполнения процесса, реагировать на ошибки. В итоге для обработки одного файла создается отдельный скрипт в дополнение к скрипту, в котором участвует вызов xargs.

Я задумался, как можно соединить эти два скрипта в один...

Никита Мельниченко.