Быстро удалить огромное количество файлов в каталоге
Не редко у администраторов возникает задача быстрого удаления огромного количества файлов на Linux или FreeBSD. И как правило все используют классический способ с использованием rm -rf /directory/, но когда в каталоге 900 тыс. файлов, то удаление такого каталога с помощью rm может растянуться на долгие часы.
Более быстрый способ удаления — это синхронизация удаляемого каталога с пустым через rsync. Суть простая — нужно rsync-ом положить пустой каталог в тот, который нужно очистить, с опцией -delete.
Итак, создаём пустой каталог:
Если у нас всё плохо и на диске создать каталог уже нельзя (закончилось место или inode), то нас всегда спасёт /dev/shm (на Linux):
Назначаем на каталог /tmp/empty те же права, которые сейчас у нас на том каталоге, который мы собираемся чистить (иначе каталог станет принадлежать root и туда никто потом не сможет писать), например:
Начинаем всё удалять:
Last updated