Eliminar el directorio debería funcionar. Es posible que tenga problemas si intenta eliminar archivos individuales porque hay muchos. No estás ejecutando rm -rf dirname/*
¿Eres tú?
Supongo que está perdiendo la conexión ssh debido a la inactividad, ¿está seguro de que el comando no se ejecutó correctamente en el servidor?
En cualquier caso, una posible solución sería usar nohup:
nohup rm -rf dirname
Puede ejecutar el comando y cerrar la sesión, continuará en segundo plano.
ACTUALIZAR:
Encontré esta pregunta en U&L.SE, te recomiendo que le eches un vistazo. Desafortunadamente, no puedo recrear su problema. Creé un directorio con 2516007 archivos y siempre podía eliminarlo usando rm -rf
:
$ mkdir ha
$ for X in $(seq 1 10000);do touch {1..10000}_$X; done
$ ls -f ha | wc -l
2516007 <= I stopped before the for loop finished, but this should be enough
$ time rm -rf ha/
real 23m11.695s
user 0m3.540s
sys 0m42.891s
Entonces, tomó 20 minutos eliminar ~2 millones de archivos vacíos. Parece razonable que podría tomar horas eliminar una gran cantidad de archivos no vacíos.
De todos modos, algunas de las sugerencias de la pregunta U&L deberían ayudar. Específicamente este:
find /delb -type f --delete
o este (ligeramente modificado del original)
find /delb -type f -print0 | xargs -0r rm -f
Finalmente, un truco que podrías hacer es eliminar algunos archivos a la vez. Si sabe que algunos nombres de archivos comienzan con la cadena "foo", otros "bar", etc., haga esto:
rm -rf /delb/foo*
rm -rf /delb/bar*
y así. También puedes probar algo como esto:
for n in {a..z}; do rm -rf /delb/$n*; done
for n in {A..Z}; do rm -rf /delb/$n*; done
for n in {0..9}; do rm -rf /delb/$n*; done
Este último comando eliminará secuencialmente cada nombre de archivo que comience con cada letra del alfabeto, luego cualquier nombre de archivo que comience con números.