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