On Tue, Apr 09, 2013 at 01:14:21PM +0400, Paul Wolneykien wrote: > 09.04.2013 10:42, Dmitry V. Levin пишет: > >Я посмотрел логи последней тестовой > >пересборки, там более 60 > >пакетов python*-module-*, в которых используется > > for var in $(find > >и что-то мне подсказывает (не глядя в > >спеки), что все это будет > >гораздо лучше работать в форме > > find -exec ... + > > А почему так? "for" же встроенная > конструкция, а find -exec наверняка на каждый > exec форкает отдельную оболочку. Если я расскажу, как именно оно происходит, вы же все равно не поверите. И правильно сделаете, зачем верить на слово, когда можно проверить собственноручно. Сравните strace -feexecve -o '|grep -Fc execve' sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null' и strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null' Можете еще и время сравнить: time sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null' против time sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null' Только сперва убедитесь, что я предварительно не нахимичил с /usr/bin/{strace,time} ;) -- ldv