Normalerweise lösche ich Verzeichnisse mit rm :
rm -r myDir
Mir ist jedoch ein anderer Befehl bekannt, rmdir , der den Job genauso gut zu erledigen scheint:
rmdir myDir
Was ist der Unterschied zwischen diesen beiden Befehlen und wann sollte jeder verwendet werden?
rmdir(2)
dem nur leere Verzeichnisse entfernt werden können.rm -r
: (1) Geben Sie den Befehl ein, aber geben Sie ihn nicht ein. (2) Nehmen Sie Ihre Hände von der Tastatur. (3) Zählen Sie bis fünf. (4) Drücken Sie die EINGABETASTE. Ich habe angefangen, so etwas mit allen gefährlichen Befehlen zu tun, um mir die Möglichkeit zu geben, zu sehen, was ich tue, sicherzustellen, dass ich die Dinge richtig eingegeben habe, darüber nachzudenken, ob es unerwartete Konsequenzen geben könnte usw. Gelegentlich führt mich dies Zum Beispiel, um meinen Befehl zu löschen und zuerst einige zusätzliche Überprüfungen durchzuführen.rm -rf ~ /*
- bereinige mein Home-Verzeichnis. Oder warten Sie, vielleicht reinigen Sie das System. Immer gut zu überprüfen;).rmdir
undrm -r
sind zwei Zeichenfolgen der gleichen Länge :-)Antworten:
rm -r
entfernt ein Verzeichnis und seinen gesamten Inhalt;rmdir
entfernt ein Verzeichnis nur, wenn das Verzeichnis leer ist. Ich möchte Folgendes verwenden, um ein Verzeichnis und seinen gesamten Inhalt zu entfernen:quelle
-f
wenn Sie nicht müssen. Es ist praktisch,-rf
jedes Mal zu verwenden, aber es deaktiviert (fast) alle Sicherheitsüberprüfungen.-f
Flagge von rm, die unvorhersehbare, nicht rückgängig zu machende Konsequenzen haben kannrmdir
ist nurrm -d
?-d
ist keine Standardoption fürrm
.rm
Befehl kann im Allgemeinen diese Konsequenzen haben. Das-f
Flag ist nützlich, wenn esset -e
in einem Skript ausgeführt wird. Ich würde zustimmen, dass das Verwenden ohne nachzudenken unnötig ist .Sie sollten verwenden,
rm -r
wenn Sie ein Verzeichnis und seinen gesamten Inhalt rekursiv entfernen möchten oder wenn das Ziel ein Verzeichnis oder eine Datei sein kann und Sie es löschen möchten, unabhängig davon, um was es sich handelt.Sie sollten verwenden,
rmdir
wenn Sie ein leeres Verzeichnis entfernen möchten.Der
rmdir
Befehl ist nützlich, da er sich weigert, nicht leere Verzeichnisse und Dateien zu entfernen. Dies dient als Sicherheitshinweis in Situationen, in denen Sie absolut sicher sein möchten, dass das, was Sie löschen, ein Verzeichnis ist und dass das Verzeichnis leer ist, bevor Sie es löschen (z. B. in einem Skript), und es als Fehlerbedingung behandeln möchten Andernfalls.quelle