English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод быстрого удаления большого количества файлов в Linux

Обратите внимание, что слово

Недавно, оптимизируя сервер, я обнаружил, что в каталогах maildrop и clientmqueue под postfix есть大量的文件. Вход в эти каталоги и использование команды ls - это глупое действие, а的直接执行 rm *, не было никакого отклика, количество файлов также не уменьшилось, то есть, использование команды rm для удаления файлов в каталогах с огромным количеством файлов является неэффективным.

Так что правильный способ что ли? Есть два варианта:

Первый способ:

find /path/to/directory -type f -exec rm {} \;

Второй способ:

ls -1 /path/to/directory | xargs -I{} rm {}

Два вышеупомянутых метода могут успешно удалить большое количество файлов, и они очень быстры. Но есть и еще один更好的 метод, например, чтобы удалить упомянутый выше каталог clientmqueue, который содержит все почтовые сообщения, можно использовать следующий метод:

service sendmail stop
cd /var/spool
mv clientmqueue clientmqueue-todelete
mkdir clientmqueue
chown --reference=clientmqueue-todelete clientmqueue
chmod --reference=clientmqueue-todelete clientmqueue
service sendmail start
rm -rf clientmqueue-todelete

Приведенный выше метод включает в себя переименование каталога и использование параметра --reference для重建 каталога, а затем удаление переименованного каталога. Удаление каталога напрямую очень быстро. Также можно оставить резервную копию и не удалять. Это безопаснее.

Резюме

Вот и все, что есть в этой статье. Надеюсь, что контент статьи поможет вам в изучении или работе. Если у вас есть вопросы, вы можете оставить комментарий для обсуждения, спасибо за поддержку учебника 'Крик'.

Рекомендуем к просмотру