LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Про echo не знал, обычно делаю такое просто с ls

В примере с echo или ls есть тонкий момент (даже несколько).
Какая команда — не важно, важно то, что шаблон (wildcard) обычно раскрывается оболочкой (globbing), а команда получает уже готовый список, а не шаблон.
И далеко идущие последствия --размер переданных параметров хотя и большой, но не безграничный (если правильно путаю, 32 КБ), поэтому для каталогов с большим числом файлов попытка передать раскрытый шаблон может быть неудачной.
Однако for v in list; do ...; done шаблон из list параметром не передает и этой проблемы не имеет.

В других случаях на помощь приходит xargs.

Пример с «echo *» был приведен в качестве предположения о том, как мог получиться раскрытый список вместо шаблона — кто-то прогнал содержимое файла через, например, переменную bash и записал результат обратно в файл. При этом вдобавок и выражения с переменными должны были попортиться, не только шаблоны...
Поэтому очень интересно, кто же мог так подгадить. Лично с подобным не сталкивался ни разу.

Исходная версия bormant, :

Про echo не знал, обычно делаю такое просто с ls

В примере с echo или ls есть тонкий момент (даже несколько).
Какая команда — не важно, важно то, что шаблон (wildcard) обычно раскрывается оболочкой (globbing), а команда получает уже готовый список, а не шаблон.
И далеко идущие последствия --размер переданных параметров хотя и большой, но не безграничный (если правильно путаю, 32 КБ), поэтому для каталогов с большим числом файлов попытка передать раскрытый шаблон может быть неудачной.
Однако for v in list; do ...; done шаблон из list параметром не передает и этой проблемы не имеет.

В других случаях на помощь приходит xargs.