Si la cantidad de archivos que se van a eliminar supera ampliamente a los archivos que quedan, puede que no sea el enfoque más eficiente para recorrer el árbol de archivos que se eliminarán y hacer todas esas actualizaciones del sistema de archivos. (Es análogo a hacer torpe gestión de memoria contada por referencia, visitar cada objeto en un árbol grande para soltar su referencia, en lugar de hacer que todo lo no deseado se convierta en basura en un solo paso, y luego barrer lo que es accesible para limpiar).
Es decir, clonar las partes del árbol que se deben mantener en otro volumen. Vuelva a crear un sistema de archivos nuevo y en blanco en el volumen original. Copie los archivos retenidos a sus rutas originales. Esto es vagamente similar a copiar la recolección de basura .
Habrá algún tiempo de inactividad, pero podría ser mejor que el mal desempeño continuo y la interrupción del servicio.
Puede ser poco práctico en su sistema y situación, pero es fácil imaginar casos obvios en los que este es el camino a seguir.
Por ejemplo, suponga que desea eliminar todos los archivos en un sistema de archivos. ¿Cuál sería el punto de recurrir y eliminar uno por uno? Simplemente desmóntalo y haz un "mkfs" sobre la partición para crear un sistema de archivos en blanco.
¿O suponga que desea eliminar todos los archivos, excepto media docena de archivos importantes? Saca la media docena de allí y ... "mkfs" por encima.
Eventualmente, hay un punto de equilibrio cuando hay suficientes archivos que deben permanecer, que se vuelve más barato hacer la eliminación recursiva, teniendo en cuenta otros costos como cualquier tiempo de inactividad.