Tabla de contenidos
Borrar carpeta que contiene archivos y subdirectorios de forma recursiva:
sudo rm -rf /directorio
Comando rm en linux para borrar tanto archivos como carpetas.
Opción r significa de forma recursiva, es decir bajando por todos los subdirectorios existentes.
Opción f significa sin pedir sin solicitar confirmación de cada elemento a eliminar.
Eliminar directorios vacios con rmdir:
Rmdir es un comando que únicamente puede eliminar directorios vacíos:
rmdir /directorio
En caso que el directorio no esté vacío, no borrará nada:
rmdir: fallo al borrar «./directorio»: El directorio no está vacío
Problema Eliminar directorios con muchos archivos: argument list too long
En ocasiones, nos encontramos con directorios con una cantidad muy elevada de archivos, y entonces recibimos el mensaje de que no se puede borrar mediante rm -rf. El mensaje que recibimos es
bash: /bin/rm: Argument list too long
La solución es usar el comando find en el directorio con demasiados archivos:
find /directorioconmuchosarchivos
-type f
-delete
find /directorioconmuchosarchivos -type f
-exec rm {} \;
Problema Eliminar directorios elevada carga CPU en servidores de producción
En ocasiones tenemos servidores en producción en los que hay que borrar directorios con muchísimos pequeños archivos de caché y ésto puede suponer una sobrecarga excesiva que comprometa el correcto funcionamiento de la carga de páginas web o funcionamiento mysql. En ese caso, podemos usar un pequeño script para que borre poco a poco los archivos, y así la carga de cpu de nuestra máquina no se vea comprometida:
Script borrar muchos archivos sin sobrecargar la cpu:
for directory in $(find /var/web/shared/cache/borrar/ -maxdepth 1 -type d);
do
nice -n 19 ionice -c3 find $directory* -delete -exec sh -c 'sleep 1' {} \; &
done