alibek Опубликовано 5 апреля, 2016 · Жалоба Нужно обработать архив с большим числом файлов. С использованием * можно наткнуться на переполнение. Поэтому использовать буду find. Как будет лучше и правильнее сделать? ... proc() { echo $1 } export -f proc ... find . | xargs bash -i -c 'proc "$@"' или find . | while read file; do echo $file done Второй вариант симпатичнее, но у меня смутные впечатления, что это не построчная обработка, а склейка всех имен файлов в одну строку и последующая обработка по пробельным символам. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 5 апреля, 2016 · Жалоба find -exec Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба Так -exec с функциями внутри bash-скрипта так же не работает (без экспорта), поэтому особой разницы с первым вариантом не вижу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 5 апреля, 2016 (изменено) · Жалоба Так -exec с функциями внутри bash-скрипта так же не работает (без экспорта), поэтому особой разницы с первым вариантом не вижу. Выделите proc в отдельный скрипт. Изменено 5 апреля, 2016 пользователем MATPOC Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rz3dwy Опубликовано 5 апреля, 2016 · Жалоба а склейка всех имен файлов в одну строку и последующая обработка по пробельным символам. root@my-s02:~# mkdir test root@my-s02:~# cd test root@my-s02:~/test# touch "aaa bbb" root@my-s02:~/test# touch ccc root@my-s02:~/test# find . | while read file; do echo $file; done . ./aaa bbb ./ccc Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...