@HenningMakholm я не могу говорить о вашей карте, в частности, что может быть дебетовой или кредитной карты. У меня "виза" дебетовая карточка, логотип которого мудрый идентична моей кредитной. Виза электрон в Великобритании был особый, "живой" системы, приведенный к несовершеннолетним/те, кто не доверяют, чтобы пойти овердрафта. @BenWebster Университета Огайо не равны Университета Огайо. Ответ конкретно сказал, что "университет Х" формулы и Огайо следовал формуле. @MassimoOrtolano ОК, я сделаю это явный: "нет, люди никогда не перестанут искать качественные оценки, поскольку они дают значение" Этот вопрос кажется не по теме, потому что речь идет чисто о географии не имеет никакого отношения к путешествию.

Это ответ на очень большие результирующие наборы, и проблемы с производительностью в основном, например, при получении списка файлов по медленной сети. Для небольшого количества файлов (скажем, несколько 100 или даже 1000 на локальном диске) большинство это под вопросом.

Параллелизм и использование памяти

Помимо прочего даны ответы, связанные с проблемами сепарации и такие, есть еще одна проблема с

для файл в Найти . -тип F -имя ...`; что-то сделать с ${файл}; сделано

Части внутри обратные кавычки и полностью оценивается прежде, чем разбивается на переносы строк. Это значит, если вы получите огромное количество файлов, она может либо подавиться, что размер ограничения существуют в различных компонентах; вам может не хватить памяти, если нет границ; и в любом случае придется ждать, пока весь список был выход найти , а затем обрабатывается для еще до запуска первого что-то.

Предпочтительный способ для UNIX для работы с трубами, которые по своей сути работают параллельно, и которые также не нуждаются в сколь угодно огромных буферов в целом. Это значит: вы бы предпочли для найти , чтобы работать параллельно с Вашим что-л, и оставить только имя текущего файла в оперативной памяти, в то время как его руки это что-то.

По крайней мере, частично нормального решения для этого является вышеупомянутое найти -что-то старпома. Это избавляет от необходимости держать все имена файлов в память и работает хорошо параллельно. К сожалению, он также начинается один что-то процесс для каждого файла. Если что-то может работать только на один файл, то это так и должно быть.

Если это вообще возможно, оптимальным решением будет найти -print0 команды | что-ЛС чем-л , будучи в состоянии обрабатывать имена файлов на его stdin. Тогда у вас есть только один что-то процесс независимо от того, сколько файлов есть, и вам нужно буферная только небольшое количество байт (что бы внутренняя труба буферизация происходит) между двумя процессами. Конечно, это скорее нереально, если что-то является стандартом в Unix/POSIX для команды, но может быть подход, если вы пишете его сами.

Если это невозможно, то найти -print0 команды | команды xargs -0 что-то , вероятно, одним из лучших решений. Как @dave_thompson_085 в комментариях упоминалось, команды xargs не разделить аргументы на нескольких прогонов что-то , когда система ограничений (по умолчанию в диапазоне от 128 кб или как там ограничение накладывается старпома на систему), и имеет возможность влиять на то, как много файлов данного на один вызов чего-л, следовательно, находя баланс между количеством чего-л процессов и начальной задержки.

Редактировать: удален понятия "лучше" - трудно сказать, будет ли что-то лучше будет урожай. ;)