Archive

Posts Tagged ‘xargs’

Многопоточная обработка с помощью xargs

August 24th, 2009 No comments

Благодаря посту Владимира Бредникова узнал, что xargs благодаря двум ключам помогает организовать многопоточную обработку файлов:

-n X
Ограничивает количество передаваемых вашей программе аргументов. По умолчанию xargs передаёт программе довольно большое число аргументов, поэтому для обработки одного файла за один раз нужно указывать эту опцию.
-P X
Устанавливает количество одновременно выполняемых процессов. По умолчанию xargs запускает только один процесс, но в нашем случае нужно увеличить это число до количества процессоров.

Например, в паре с утилитой find можно в несколько потоков обработать множество картинок, размер которых больше одного мегабайта

$ find ~/Photos -iname '*.jpg' -and -size +1M -print0 | \<br />  xargs -0 -n 1 -P 2 -I'{}' convert '{}' -resize '800x600&gt;' -quality 100 '{}'

P.S. Надо почаще заглядывать в man :)

Оригинал статьи: http://www.propheta.ru/2009/03/xargs.html

Tags: