Eliminar directorios con muchos enlaces duros

Eliminar directorios con muchos enlaces duros

Estoy intentando limpiar un directorio que contiene una gran cantidad de datos (más de 1 TB), con muchos de los archivos vinculados para ahorrar espacio. En cierto contexto, esta es la unidad donde guardamos nuestras compilaciones, y tenemos muchos medios (varios GB) de medios en cada compilación, por lo que vinculamos un archivo si es idéntico a un producto de compilación anterior. He notado que intentar eliminar estos directorios es extraordinariamente lento (~5 elementos por segundo).

Supongo que la eliminación está tardando mucho debido a la gran cantidad de enlaces físicos a cada archivo. ¿Hay algo que pueda hacer para acelerar este proceso o estoy atascado eliminando varios millones de elementos a 5/seg?

Respuesta1

find . -inum [inode-number] -exec rm -i {} \;

Este comando encontrará el número de inodo que luego podrá eliminar, lo que liberará los datos a los que se hace referencia.

Te he dado la bandera interactiva para que puedas probarla.

Oh, para obtener el número de inodo, puede hacer ls -illo que devolverá el nombre y el número de inodo juntos.

Si pudiera eliminar el archivo mediante inodo directamente, sería una mejora, pero no conozco la manera de hacerlo.

información relacionada