Tengo una carpeta que en cualquier momento debería tener menos de 500k carpetas. Estas carpetas se crean dinámicamente, y cuando los archivos (imágenes) dentro de ellos son eliminados por algún script, la carpeta en sí también debe eliminarse. Debido a un error, la eliminación de las carpetas vacías no se realizó, y ahora terminamos con millones de carpetas vacías ...
Así que en este momento tengo alrededor de 500k carpetas con archivos y además millones de carpetas vacías.
Porque hay tantos directorios allí, incluso un simple ls | wc -l lleva horas, así que ni siquiera puedo encontrar el número exacto.
Podría ejecutar un comando de búsqueda: buscar. -maxdepth 1 -type d -empty; y luego pipa con un rmdir; pero nuevamente, el hallazgo lleva años (o incluso usa la opción -delete que encuentra ofertas)
Entonces tuve la idea de usar rmdir --ignore-fail-on-non-empty / path / to / huge / folder / *; pero no estoy seguro de su eficiencia. Básicamente, este comando solo elimina los directorios vacíos en mi carpeta, lo que significa que los que tienen archivos deben ser seguros y no eliminados. Entonces la opción '--no ignorar-fallar-en-no-vacío' ignora los cientos de miles o advertencias para los directorios que en realidad no están vacíos.
Rápidamente he creado alrededor de 100k carpetas vacías en mi local, luego 'toqué' algunos archivos en algunos de ellos y luego usé el comando rmdir. Si bien tomó 2 minutos crear 100k carpetas vacías, tomó 2 segundos (!) Borrar las vacías. Por lo tanto, tengo muchas esperanzas, pero no estoy seguro de cómo manejará unos 10 millones de carpetas ... (Creo que podría usar ionice para evitar que el sistema se bloquee en caso de que realmente tome años)
Si alguien tiene alguna idea / consejo, o se enfrentó a algo como esto antes, ¿podría indicarme la mejor manera de abordar mi problema? O incluso para decirme qué camino es mejor: encontrar o rmdir ...
EDITAR: Olvidé mencionar la estructura de carpetas antes. Las carpetas dentro de la carpeta principal que tienen archivos, no tienen más carpetas en ellas. Las otras carpetas están vacías. Entonces, todos esos millones de carpetas pueden estar vacías o tener archivos en ellas, pero no más carpetas. Básicamente, solo hay un nivel de carpetas en la estructura de árbol.