Zwei Befehle erledigen die Hauptarbeit, wenn du ein Verzeichnis in Linux löschen willst: rm und rmdir. Auf den ersten Blick sehen sie ähnlich aus, verhalten sich aber sehr unterschiedlich. Den falschen Befehl im falschen Verzeichnis auszuführen, kann deutlich mehr löschen, als du wolltest. Und Linux hat keinen Papierkorb.
Dieser Guide behandelt beide Befehle, alle nützlichen Optionen und die Situationen, in denen jeweils welcher zum Einsatz kommt.
Linux ‚rm‘ und ‚rmdir‘: Befehlsübersicht
Bevor du einen Löschbefehl ausführst, stelle sicher, dass du weißt, wo du dich im Dateisystem befindest. Der pwd -Befehl zeigt dein aktuelles Arbeitsverzeichnis an; ls listet dessen Inhalt auf. Beide solltest du ausführen, bevor du etwas löschst.
Hier die Kurzübersicht, welcher Befehl was tut:
‚rm‘-Optionen auf einen Blick:
rm -d– ein leeres Verzeichnis löschenrm -r– ein Verzeichnis und seinen gesamten Inhalt rekursiv löschenrm -f– Bestätigungsabfragen beim Löschen schreibgeschützter Dateien überspringenrm -rf– rekursives Löschen, keine Rückfragen, ob schreibgeschützt oder nichtrm -i– vor jedem einzelnen Löschvorgang nachfragenrm -I– einmalige Rückfrage, wenn mehr als 3 Dateien gelöscht werdenrm *– Wildcard für beliebig viele Zeichenrm ?– Wildcard für genau ein Zeichen
‚rmdir‘-Optionen:
rmdir -p– ein leeres Unterverzeichnis und sein übergeordnetes Verzeichnis löschenrmdir -v– Bestätigung ausgeben, dass das Verzeichnis gelöscht wurde
Die Faustregel: Nutze rmdir, wenn du sicher bist, dass das Verzeichnis leer ist, und du dich vor versehentlichem Löschen von Dateien schützen willst. Nutze rm -r, wenn du auch den Verzeichnisinhalt löschen musst.
Bevor du einen Löschbefehl in Linux ausführst: Stelle sicher, dass du ein aktuelles Backup hast. Diese Befehle sind endgültig. Es gibt kein Rückgängigmachen.
Leere Verzeichnisse mit ‚rmdir‘ löschen
rmdir ist die sicherere Wahl zum Löschen leerer Verzeichnisse. Der Befehl verweigert schlicht die Arbeit, wenn ein Verzeichnis noch Dateien, Unterverzeichnisse oder Symlinks enthält, und gibt diesen Fehler aus:
rmdir: failed to remove 'Directory': Directory not emptyDieses Verhalten ist beabsichtigt. Es verhindert, dass du versehentlich einen ganzen Verzeichnisbaum löschst, wenn du dachtest, er wäre bereits leer.
Grundlegende Syntax:
rmdir DirectoryNameUm mehrere leere Verzeichnisse in einem Befehl zu löschen, gib sie als separate Argumente an:
rmdir Directory_1 Directory_2 Directory_3Unterverzeichnis und übergeordnetes Verzeichnis löschen
Die Option ‚-p‘ löscht ein Unterverzeichnis und arbeitet sich den Pfad nach oben, wobei jedes übergeordnete Verzeichnis gelöscht wird, sofern es nach dem Entfernen des Kindes ebenfalls leer ist:
rmdir -p /Directory/SubDirectoryDas löscht zuerst das Unterverzeichnis, dann das Verzeichnis darüber. Aber nur, wenn das übergeordnete Verzeichnis zu diesem Zeitpunkt nichts anderes mehr enthält.
Löschung mit ‚-v‘ bestätigen
Das -v-Flag gibt eine Meldung für jedes gelöschte Verzeichnis aus. Nützlich, wenn du mehrere Verzeichnisse löschst und nachvollziehen willst, was tatsächlich entfernt wurde:
rmdir -v Simple-Directory
rmdir: removing directory, 'Simple-Directory'Nicht leere Verzeichnisse mit ‚rm -r‘ löschen
rm ist ein Befehl zum Löschen von Dateien. In Kombination mit -r (rekursiv) wird er zum Standardwerkzeug für das Löschen ganzer Verzeichnisbäume. Das rekursive Flag weist ihn an, in Unterverzeichnisse abzusteigen und alles zu löschen: Dateien, Ordner, alles.
Einfaches rekursives Löschen:
rm -r Simple-DirectoryWarnung: Das löscht das Verzeichnis und alles darin dauerhaft. Wiederherstellung geht nur mit einem Backup.
Schreibschutz-Rückfragen mit ‚-rf‘ überspringen
Wenn ein Verzeichnis oder dessen Inhalt schreibgeschützt ist, pausiert ‚rm‘ und fragt vor jeder Datei nach Bestätigung. Wenn du dir sicher bist, was du löschst, überspringt -rf alle Rückfragen:
rm -rf Simple-DirectoryVerwende das mit Bedacht. Die Kombination aus rekursiv und force ist die destruktivste Variante des Befehls. Prüfe den Pfad doppelt, bevor du ihn ausführst.
Mehrere Verzeichnisse auf einmal löschen
Du kannst mehrere Verzeichnisnamen als Argumente übergeben, um sie alle in einem einzigen Löschvorgang zu entfernen:
rm -r Directory_1 Directory_2 Directory_3Dateien unter Linux mit dem ‚rm‘-Befehl löschen
Manchmal willst du gezielt Dateien aus einem Verzeichnis löschen, ohne die Verzeichnisstruktur selbst anzutasten. rm kann auch das.
Eine einzelne Datei aus dem aktuellen Arbeitsverzeichnis löschen:
rm file.txtMehrere Dateien auf einmal löschen:
rm file1.txt file2.txt file3.txtEine Datei in einem anderen Verzeichnis löschen, indem du den Pfad angibst:
rm dir/subdir/file.txtSicheres Löschen mit Bestätigungs-Flags
Das -i-Flag fragt vor jedem Löschvorgang nach Bestätigung. Langsamer, aber sicher, wenn du Dateien löschst, die du länger nicht geprüft hast:
rm -i file1.txt file2.txt file3.txtDas Terminal fragt bei jeder Datei nach Y/N. Wenn du einen großen Batch löschst und nur eine einzige Bestätigung willst, nutze stattdessen -I:
rm -I file1.txt file2.txt file3.txtUm alle Bestätigungen zu überspringen (auch bei schreibgeschützten Dateien), nutze -f:
rm -f file.txtWildcards zum Löschen mehrerer Dateien verwenden
Wildcards ermöglichen es, Gruppen von Dateien mit einem einzigen Befehl zu erfassen, statt sie einzeln aufzulisten. Das Sternchen steht für beliebig viele Zeichen; das Fragezeichen für genau eines.
Alle ‚.txt‘-Dateien im aktuellen Verzeichnis löschen:
rm *.txtAlle Dateien löschen, die mit dem Buchstaben ‚a‘ beginnen:
rm a*Dateien mit einstelliger Dateiendung löschen:
rm *.?Warnung: Führe zuerst ‚ls‘ aus, um zu sehen, welche Dateien ein Wildcard-Muster trifft, bevor du es mit ‚rm‘ verwendest. Wildcards kümmern sich nicht um die Wichtigkeit einer Datei.
VPS-Dateiverwaltung über SSH-Terminal
Auf einem VPS oder Dedicated Server führst du diese Befehle über SSH aus. Verbinde dich über eine Terminal-Anwendung oder einen SSH-Client. Unter Linux und macOS ist das das integrierte Terminal; unter Windows funktionieren PuTTY oder Windows Terminal.
Wenn du Dateien nicht über die Kommandozeile verwalten willst, bieten die meisten VPS-Anbieter die Möglichkeit, ein Control Panel zu installieren. CyberPanel und cPanel bieten beide einen Dateimanager mit grafischer Oberfläche. Nützlich für Einzelaufgaben, aber langsamer als die Kommandozeile bei allem, was sich wiederholt.
Für schnellen Zugriff ohne zusätzliche Software bieten viele Anbieter mittlerweile ein browserbasiertes Terminal direkt im VPS-Dashboard. Öffne es, authentifiziere dich, und du führst Bash-Befehle direkt aus dem Browser aus, ohne lokalen SSH-Client.
Egal, welche Zugriffsmethode du nutzt: ‚rm‘ und ‚rmdir‘ verhalten sich identisch. Das Einzige, was sich ändert, ist, wie du zum Prompt kommst.
Kurzreferenz: ‚rm‘ vs. ‚rmdir‘
rmdir– nur leere Verzeichnisse, standardmäßig sicher, gibt einen Fehler aus, wenn das Verzeichnis Inhalt hatrm -d– ‚rm‘-Äquivalent für leere Verzeichnisserm -r– löscht nicht leere Verzeichnisse rekursiv; kann nicht rückgängig gemacht werdenrm -rf– rekursiv, keine Rückfragen; nur verwenden, wenn du dir sicher bist, was du löschstrm -i– interaktiver Modus; Bestätigung vor jedem Löschvorgangrm * / rm ?– Wildcards für Batch-Löschung; vorher mitlsprüfen
Der Linux-Löschvorgang, der Admins in Schwierigkeiten bringt, ist fast immer rm -rf auf den falschen Pfad gerichtet. Langsam machen, den Pfad mit pwd und ls prüfen, dann ausführen. Diese fünf extra Sekunden verhindern einen richtig unangenehmen Nachmittag.