Jak odstraním adresář a veškerý jeho obsah?

V bash vím jen to, že

rmdir directoryname 

odstraní adresář, ale pouze pokud je prázdný. Existuje způsob, jak vynutit odstranění podadresářů?

Odpovědět

Následující příkaz to udělá za vás . Buďte však opatrní.

rm -rf directoryname 

Komentáře

  • " -f " je " –force " který má přednost před některými kontrolami rozumu a bezpečnější příkaz pro začátek by byl rm -r directoryname.
  • Z nějakého důvodu se mi zobrazí rm: invalid option -- r chyba pokus o odstranění adresáře pomocí rm -r < název adresáře >.
  • @Sunspawn Zkontrolujte tuto související otázku a zjistěte, zda tomu tak je '.
  • @JimParis Myslím, že slovo " bezpečnější " je relativní. Předpokládejme, že píšete skript pro spuštění na vzdáleném počítači. Tento skript má příkaz, který má odebrat adresář. Zde by bylo " bezpečnější " použít rm -rf directoryname coz, než byste ' Nechcete, aby váš skript pozastavil provádění, protože ' čeká na vstup uživatele. Samozřejmě si musíte být jisti, že smazání adresáře by neuškodilo.

Odpovědět

if rm -rf directoryname selže, zkuste použít rm -R -f directoryname nebo rm --recursive -f directoryname.

Pokud s nimi nemáte štěstí, měli byste zvážit přeinstalaci rm nebo přepínání skořápek.

Komentáře

  • Toto byly možnosti dostupné na mém rm manuálová stránka, vyhledal jsem to zadáním man rm pro zobrazení mých možností rekurzivního mazání a možností force .
  • Má vaše rm seznam manuálových stránek -r? Co to dělá? (Vyzkoušejte to v adresáři, který vytvoříte pouze pro účely testování, pouze s fiktivními soubory (a možná podadresáři).) Jaký operační systém používáte?
  • P.S. Pokud rm -r nefunguje ', jedná se o problém OS, nikoli o shell. (Přísně vzato by to byl problém s verzí rm, kterou ' znovu používáte, takže ji můžete vyřešit instalací jinou verzi rm nebo prohledáním systému zjistíte, zda již máte jinou verzi rm v jiném adresáři než /bin.)
  • Ah, správně. Zapomněl jsem zmínit I ' m na Ubuntu 14.04 Když jsem v terminálu běžel man rm, dal mi textový soubor s less prohlížeč textů. Posunul jsem se, abych našel odsazený záznam s celkem, který měl možnosti -R a –recursive cozied s možností -r , což znamená, že všechny tyto argumenty jsou totožné.
  • edit: zkusili jste sudo rm -r directoryName ? Nepsaná pravidla základních příkazů spočívají v tom, že -r umožní programu rekurzivní běh na každém souboru ve vašem souborovém systému (počínaje kdekoli si vyberete!) A to -f bude dělat věci násilně, i když je to ' s nebezpečné . ' cd ', ' mv ', ' ls ' většinou platí tento princip. ls -r / bude duzie a cp -rf / /dev/null zničí vše ve vašem souborovém systému. < – Tento příkaz nikdy nespouštějte!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *