Я думаю, что for/do
цикл понятнее и, вероятно, немного быстрее, чем find
plus xargs
. Предполагая, что вы используете оболочку по умолчанию, bash
, на OS X, в общем виде команды, если вы хотите сделать это в качестве одной лайнера:
for f in <files>; do <somecommand> $f; done
где <files>
это выражение, которое вычисляет список файлов (обычно это расширение подстановки), <somecommand>
- это командная строка, которую вы хотите выполнить для каждого файла, и $f
разворачивается в каждом файле в <files>
. Таким образом, вы бы ввести что-то вроде этого:
for f in myfolder/*; do TMXResolutionTool $f <otherparameters> ; done
Вы также можете запустить несколько команд внутри цикла на той же линии, как раз, приковав их точкой с запятой. Таким образом, если ваш вопрос означает, что вы хотите запустить TMXResolutionTool три раза по каждому файлу в последовательности с различными параметрами:
for f in myfolder/*; do TMXResolutionTool $f <otherparameters>; TMXResolutionTool $f <differentparameters>; TMXResolutionTool $f <yetmoredifferentstuff>; done
Кстати, это все основные bash
приемы оболочки; это не относится к OS X. Любая книга на bash
расскажет вам все это и многое другое (хотя, если вы хотите узнать о командной строке с точки зрения Mac, я рекомендую книгу O'Reilly Learning Unix for OS X Mountain Lion).
Спасибо, удивительный. – Eyeball