Ответ 1
Разница в скорости будет незначительной.
Но вы должны убедиться, что:
-
Ваш script не предполагает, что нет файл будет содержать пробел, вкладку и т.д. в имя файла; первая версия безопасный, второй - нет.
-
Ваш script не будет обрабатывать файл, начинающийся с "
-
" в качестве опции.
Итак, ваш код должен выглядеть так:
find . -exec cmd -option1 -option2 -- {} +
или
find . -print0 | xargs -0 cmd -option1 -option2 --
Первая версия короче и легче писать, так как вы можете игнорировать 1, но
вторая версия более переносима и безопасна, так как "-exec cmd {} +
" является относительно новым вариантом в GNU findutils (с 2005 года многие запущенные системы еще не будут иметь его), и это было багги в последнее время. Также многие люди не знают этого "-exec cmd {} +
", как вы можете видеть из других ответов.