У меня есть папка, которая в любое время должна иметь менее 500 тыс. Папок. Эти папки создаются динамически, и когда файлы (изображения) внутри них удаляются каким-либо сценарием, сама папка также должна быть удалена. Из-за ошибки удаление пустых папок не было сделано, и теперь мы получили миллионы пустых папок ...
Итак, на данный момент у меня есть около 500 тыс. Папок с файлами в них, а также миллионы пустых папок.
Потому что там так много папок, даже простой ls | wc -l занимает часы, поэтому даже не могу найти точное число.
Я мог бы запустить команду поиска: найти. -maxdepth 1-type d -empty; и затем отправьте его с помощью rmdir; но опять же, поиск занимает много времени (или даже использует опцию -delete для поиска предложений)
Затем у меня появилась идея использовать rmdir --ignore-fail-on-non-empty /path /to / огромный / папка / *; но я не уверен в его эффективности. По сути, эта команда удаляет только пустые каталоги в моей папке, что означает, что те, в которых есть файлы, должны быть безопасными, а не удалены. Затем опция --ignore-fail-on-non-empty игнорирует сотни тысяч или предупреждений для папок, которые на самом деле не пусты.
Я быстро создал около 100 тыс. Пустых папок в своей локальной сети, затем «коснулся» нескольких файлов в некоторых из них и затем использовал команду rmdir. Хотя создание 100 тыс. Пустых папок заняло 2 минуты, это заняло 2 секунды (!) удалить пустые. Так что мои надежды велики, но я не уверен, как он будет обрабатывать около 10 миллионов папок ... (Полагаю, я мог бы использовать ionice, чтобы остановить блокировку системы на случай, если на самом деле это займет много лет)
Если у кого-то есть какие-либо идеи / советы или кто-то сталкивался с чем-то подобным, не могли бы вы указать мне, как лучше всего подойти к моей проблеме. Или даже сказать мне, какой путь лучше пойти: найти или Rmdir ...
РЕДАКТИРОВАТЬ: я забыл упомянуть структуру папок раньше. Папки в основной папке, в которых есть файлы, больше не содержат папок. Другие папки пусты. Таким образом, все эти миллионы папок могут быть пустыми или содержать файлы, но папок больше нет. В общем, в древовидной структуре есть только один уровень папок.