Intereting Posts
распечатать сообщение на терминале, а также / var / log / messages с помощью регистратора Как ограничить количество запущенных процессов getty? Как вы это называете? bash в / var / log / messages Я случайно удалил своего пользователя из нескольких групп, как узнать, какими они были? Использование OpenConnect для VPN, Монетный двор Linux 17 Чтение и поиск длинных страниц Как выполнить удаленный сценарий оболочки через SSH и получить запрос на пароли командами, которые требуют этого в этом скрипте? Постоянно отображать строку состояния меньше Как я могу контролировать загрузку php-скрипта на сервере? Сервер Ubuntu со многими разделами Как отправить нажатие клавиш (F5) с терминала на процесс? использование root в mkdir в другом домашнем каталоге пользователей Настройка OS X / MacOS / BSD maxfile Переключение между двумя установками одной программы Windows Server 2012 R2 и Centos 7 с двойной загрузкой: Windows ушла из меню загрузки

Могу ли я отключить perl со списком из команды поиска unix?

Попытка удалить тысячи файлов на нескольких серверах.
rm не будет работать.
Написал общий скрипт для запуска из cron для удаления на регулярной основе:

 ... /bin/perl -e 'unlink ( <`find ${DIRECTORY} -name "*.${FILETYPE}" -type f -mtime +${DELETE_OLDER_THAN}`> ) or die "Nothing deleted\n" ' >> ${REMOVAL_LOGFILE} 2>&1 ... 

Я хочу быть очень конкретным в отношении того, что я удаляю.
Я использую perl, потому что он выглядит быстрее, чем -exec rm {} : /
Является ли find разрешенным в этом контексте?

Если ваша find поддерживает действие -delete вы найдете это примерно так же быстро, как можете, не создавая несколько процессов удаления:

 find "$DIRECTORY" -name "*.$FILETYPE" -type f -mtime +"$DELETE_OLDER_THAN" \ -delete -print >> "$REMOVAL_LOGFILE" 2>&1 

Вы найдете, что -exec rm {} \; медленно, потому что он создает новый процесс для каждой операции удаления. Если ваша find имеет его, -exec rm {} + будет быстрее, потому что это создаст один rm процесс для значительного количества файлов. Но самый быстрый из всех однопоточных решений был бы -delete .

С некоторой степенью сложности вы можете развить одну find .. -delete процесс для каталога, в дереве каталогов и иметь (по крайней мере некоторые) те, которые работают параллельно. Но я не знаю, сколько каталогов вы обрабатываете, поэтому я не могу определить, будет ли это чистая прибыль.