L'eliminazione della directory dovrebbe funzionare. Potresti incorrere in problemi se stai tentando di eliminare singoli file perché ce ne sono così tanti. Non stai eseguendo rm -rf dirname/*
sei tu?
La mia ipotesi è che tu stia perdendo la connessione ssh a causa dell'inattività, sei sicuro che il comando non sia stato eseguito correttamente sul server?
In ogni caso, una possibile soluzione sarebbe usare nohup:
nohup rm -rf dirname
Puoi avviare il comando e disconnetterti, continuerà in background.
AGGIORNAMENTO:
Ho trovato questa domanda su U&L.SE, ti consiglio di dargli un'occhiata. Sfortunatamente, non posso ricreare il tuo problema. Ho creato una directory con 2516007 file e potrei sempre eliminarla 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
Quindi, ci sono voluti 20 minuti per eliminare circa 2 milioni di file vuoti. Sembra ragionevole che potrebbero essere necessarie ore per eliminare un'enorme quantità di file non vuoti.
Ad ogni modo, alcuni dei suggerimenti della domanda U&L dovrebbero aiutare. Nello specifico questo:
find /delb -type f --delete
o questo (leggermente modificato rispetto all'originale)
find /delb -type f -print0 | xargs -0r rm -f
Infine, un trucco che potresti fare è eliminare alcuni file alla volta. Se sai che alcuni nomi di file iniziano con la stringa "foo", altri "bar" ecc., fai questo:
rm -rf /delb/foo*
rm -rf /delb/bar*
e così via. Potresti anche provare qualcosa del genere:
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
Quest'ultimo comando eliminerà in sequenza ogni nome di file che inizia con ogni lettera dell'alfabeto, quindi qualsiasi nome di file che inizia con numeri.