GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿Eliminar eficientemente un directorio grande que contiene miles de archivos?

Tenemos un problema con una carpeta que se vuelve difícil de manejar con cientos de miles de archivos pequeños.

Hay tantos archivos que ejecutar rm -rf devuelve un error y, en cambio, lo que debemos hacer es algo como:

find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} ;

Esto funciona, pero es muy lento y falla constantemente porque se queda sin memoria.

¿Hay una mejor manera de hacer esto? Idealmente, me gustaría eliminar todo el directorio sin preocuparme por el contenido que contiene.

Respuesta aceptada:

Usar rsync es sorprendentemente rápido y simple.

mkdir empty_dir
rsync -a --delete empty_dir/    yourdirectory/

La respuesta de @sarath mencionó otra opción rápida:¡Perl! Sus puntos de referencia son más rápidos que rsync -a --delete .

cd yourdirectory
perl -e 'for(<*>){((stat)[9]<(unlink))}'

Fuentes:

  1. https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
  2. http://www.slashroot.in/cuál-es-el-método-más-rápido-para-eliminar-archivos-en-linux

Linux
  1. Linux Eliminar archivos y directorios

  2. 5 ejemplos prácticos para eliminar / eliminar directorios en Linux

  3. Conteo recursivo de archivos en un directorio de Linux

  4. Linux equivalente a robocopy?

  5. rsync no eliminará archivos en el destino

Encuentre y elimine el archivo más antiguo si hay más de X archivos en un directorio en Linux

Cómo mover una gran cantidad de archivos en Linux

Cómo copiar una gran cantidad de archivos en Linux

Cómo contar archivos en el directorio en Linux

Contar el número de archivos en un directorio en Linux

Ejemplos de comandos rsync de Linux