Eliminar gran cantidad de archivos en linux

/bin/rm: Argument list too long.

Probablemente te encuentre con este error si intentas eliminar una gran cantidad de archivos a la vez.

El problema es que cuando escribe el comando “rm -rf “, el “” se reemplaza con una lista de cada archivo coincidente, como “rm -rf file1 file2 file3”, y así sucesivamente. Hay un pequeño buffer de memoria asignada para almacenar esta lista de argumentos y, si está completa, el shell no ejecutará el programa.

Para evitar este problema, mucha gente usará el comando “find” para buscar cada archivo y pasarlos uno por uno al comando “rm” de esta manera:

find . -type f -exec rm -v {} \;

Esta solución parece ser buena, el problema es que si el directorio es muy extenso, tomará mucho tiempo eliminar todos los ficheros.

Navegando en la web encontré una forma más sencilla,  agregando “-delete” al comando “find” usando este método se borran 2000/archivos por segundo. ¡Mucho más rápido!!

find . -name "*" -delete

También puede mostrar los nombres de los archivos cuando los esta borrando agregando -print.

find . -name "*" -print -delete

Este tip me ha servido mucho, espero y a alguien más sea de ayuda.

 

[Total: 1    Average: 5/5]
Disqus Comments Loading...