Wie entferne ich ein Verzeichnis und seinen gesamten Inhalt?

In bash weiß ich nur, dass

rmdir directoryname 

das Verzeichnis entfernt, aber nur Wenn es leer ist. Gibt es eine Möglichkeit, das Entfernen von Unterverzeichnissen zu erzwingen?

Antwort

Der folgende Befehl erledigt dies für Sie Seien Sie jedoch vorsichtig.

rm -rf directoryname 

Kommentare

  • " -f " ist " –force ", das einige Überprüfungen der Integrität und überschreibt Ein sicherer Befehl zu Beginn wäre rm -r directoryname.
  • Aus irgendeinem Grund erhalte ich den Fehler rm: invalid option -- r, wenn Versuch, ein Verzeichnis mit rm -r < Verzeichnisname > zu löschen.
  • @Sunspawn Überprüfen Sie diese verwandte Frage , um festzustellen, ob dies ' der Fall ist.
  • @JimParis Ich denke, das Wort " sicherer " ist relativ. Angenommen, Sie schreiben ein Skript, das auf einem Remotecomputer ausgeführt werden soll. Dieses Skript hat einen Befehl, der ein Verzeichnis entfernen soll. Hier wäre es " sicherer ", rm -rf directoryname zu verwenden, da Sie nicht ' möchte nicht, dass Ihr Skript die Ausführung pausiert, da es ' auf Benutzereingaben wartet. Natürlich müssen Sie sicher sein, dass das Löschen des Verzeichnisses keinen Schaden anrichtet.

Antwort

if rm -rf directoryname schlägt fehl. Versuchen Sie, rm -R -f directoryname oder rm --recursive -f directoryname zu verwenden.

Wenn Sie mit diesen kein Glück haben, sollten Sie in Betracht ziehen, rm neu zu installieren oder Shells zu wechseln.

Kommentare

  • Dies waren die Optionen, die auf meinem rm verfügbar waren Manpage habe ich nachgeschlagen, indem ich man rm eingegeben habe, um meine Optionen für das rekursive Löschen und die Optionen force anzuzeigen.
  • Tut Ihr rm Manpage-Liste -r? Was tut es? (Probieren Sie es in einem Verzeichnis aus, das Sie nur zu Testzwecken erstellen und in dem sich nur Dummy-Dateien (und möglicherweise Unterverzeichnisse) befinden.) Welches Betriebssystem verwenden Sie?
  • P.S. Wenn rm -r ' nicht funktioniert, ist dies ein Betriebssystemproblem und kein Shell-Problem. (Genau genommen wäre es ein Problem mit der Version von rm, die Sie ' verwenden, sodass Sie es beheben können, indem Sie a installieren andere Version von rm oder durchsuchen Sie Ihr System, um festzustellen, ob Sie bereits eine andere Version von rm in einem anderen Verzeichnis als /bin.)
  • Ah, richtig. Ich habe vergessen zu erwähnen, dass ich ' m unter Ubuntu 14.04 bin. Als ich man rm in meinem Terminal ausführte, gab es mir eine Textdatei mit dem less Textbetrachter. Ich habe gescrollt und einen eingerückten Eintrag mit einem Ganzen gefunden, bei dem die Optionen -R und –recursive mit der Option -r übereinstimmen, was dies bedeutet Alle diese Argumente sind identisch.
  • Bearbeiten: Haben Sie versucht, sudo rm -r directoryName ? Die ungeschriebenen Regeln der Grundbefehle lauten, dass -r es einem Programm ermöglicht, rekursiv auf jeder Datei Ihres Dateisystems auszuführen (beginnend, wo immer Sie möchten!) Und dass -f Dinge mit Nachdruck ausführt. selbst wenn es ' gefährlich ist. ' cd ', ' mv ', ' ls ' meistens gilt für dieses Prinzip. ls -r / wird ein Duzie, und cp -rf / /dev/null zerstört alles in Ihrem Dateisystem. < – Führen Sie diesen Befehl niemals aus!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.