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 vonrm
, die Sie ' verwenden, sodass Sie es beheben können, indem Sie a installieren andere Version vonrm
oder durchsuchen Sie Ihr System, um festzustellen, ob Sie bereits eine andere Version vonrm
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 demless
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, undcp -rf / /dev/null
zerstört alles in Ihrem Dateisystem. < – Führen Sie diesen Befehl niemals aus!