Smazání adresáře by mělo fungovat. Pokud se pokoušíte odstranit jednotlivé soubory, protože jich je tolik, můžete se dostat do potíží. Neprovozujete rm -rf dirname/*
jsi?
Můj odhad je, že ztrácíte ssh připojení kvůli nečinnosti, jste si jisti, že příkaz nebyl na serveru správně proveden?
V každém případě by možným řešením bylo použít nohup:
nohup rm -rf dirname
Můžete spustit příkaz a odhlásit se, bude pokračovat na pozadí.
AKTUALIZACE:
Tuto otázku jsem našel na U&L.SE, doporučuji se na ni podívat. Bohužel váš problém nemohu obnovit. Vytvořil jsem adresář s 2516007 soubory a mohl jsem jej vždy smazat pomocí 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
Takže odstranění ~ 2 milionů prázdných souborů trvalo 20 minut. Zdá se rozumné, že odstranění velkého množství neprázdných souborů může trvat hodiny.
Každopádně některé návrhy z otázky U&L by měly pomoci. Konkrétně tento:
find /delb -type f --delete
nebo tento (mírně upravený oproti originálu)
find /delb -type f -print0 | xargs -0r rm -f
Nakonec trik, který můžete udělat, je odstranit několik souborů najednou. Pokud víte, že některé názvy souborů začínají řetězcem "foo", jiné "bar" atd., udělejte toto:
rm -rf /delb/foo*
rm -rf /delb/bar*
a tak dále. Můžete také zkusit něco takového:
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
Tento poslední příkaz postupně vymaže každý název souboru začínající každým písmenem abecedy a poté všechny názvy souborů začínající čísly.