GNU/Linux >> Znalost Linux >  >> Linux

Debian - mazání tisíců souborů

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.


Linux
  1. Linux – efektivně odstranit velký adresář obsahující tisíce souborů?

  2. Jak přesunout 100 souborů ze složky obsahující tisíce?

  3. Mazání souborů podle věku?

  1. 7zip File:Jak dekomprimovat 7z soubory na Ubuntu, Debian, Fedora

  2. gzip všechny soubory bez jejich smazání

  3. Bezvadné mazání souborů starších než 30 dní

  1. mazání souborů, ale místo na disku je stále plné

  2. Hledání a mazání souborů s konkrétním datem

  3. Příliš mnoho otevřených souborů v Debianu