В моем веб-приложении я обрабатываю страницы с использованием PHP-скрипта, а затем генерирую из них статические HTML-файлы. Статический HTML предоставляется пользователям для повышения производительности. HTML-файлы в конечном итоге устаревают и их необходимо удалить.Что быстрее, «найти -exec» или «найти | xargs -0 '?
Я обсуждаю между двумя способами написания сценария выселения.
Первый с помощью одной команды поиска, как
find /var/www/cache -type f -mmin +10 -exec rm \{} \;
Вторая форма по конвейеру через xargs, что-то вроде
find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm
Первая форма вызывает rm
для каждого файла, он находит, а вторая форма просто отправляет все имена файлов в один rm
(но список файлов может быть очень длинным).
Какая форма будет быстрее?
В моем случае каталог кеша разделяется между несколькими веб-серверами, поэтому все это делается по NFS, если это имеет значение для этой проблемы.
Я думаю, что xargs автоматически (без -l) порождает несколько процессов, если количество аргументов больше, чем максимальный размер оболочки. – MatthieuP
Спасибо. Я не знал, что xargs могут это сделать. – yhager