Что +в find /path/ -exec command '{}' +делах? в отличие отfind /path/ -exec command '{}' \;
Что +в find /path/ -exec command '{}' +делах? в отличие отfind /path/ -exec command '{}' \;
Ответы:
'+' Делает одну большую командную строку из всех найденных файлов, чтобы минимизировать количество команд, которые нужно выполнить.
Учитывая случай, когда команда find находит четыре файла.
find . -type f -exec command '{}' \;
будет производить
command file1
command file2
command file3
command file4
С другой стороны
find . -type f -exec command '{}' \+
производит
command file1 file2 file3 file4
Со страницы руководства:
-exec команда {} +
Этот вариант действия -exec запускает указанную команду для выбранных файлов, но командная строка создается путем добавления каждого выбранного имени файла в конце; общее количество вызовов команды будет намного меньше, чем количество совпавших файлов. Командная строка строится во многом так же, как xargs создает свои командные строки. В команде допускается только один экземпляр `{} '. Команда выполняется в начальном каталоге.
findдает мне полу
xargs,-exec … {} +делает то же самое-print | xargs …, но без проблем с цитированием (-print0 | xargs -0это еще один способ, но он менее переносим).