rm (Entfernen)
100%

Befehlszeile · Lektion 13

rm (Entfernen)

Lerne, Dateien und Verzeichnisse zu entfernen, Ziele zu prüfen und sicherere rm-Optionen auszuwählen.

Der Befehl rm entfernt Einträge aus dem Dateisystem. Auf der Kommandozeile gelöschte Elemente landen normalerweise nicht im Papierkorb, und rm besitzt keine eingebaute Rückgängig-Funktion. Bestätige daher jedes Ziel, bevor du den Befehl ausführst.

Die grundlegende Syntax lautet:

rm [OPTIONS] FILE...

Dateien entfernen

Übergib rm einen oder mehrere Dateipfade:

$ rm file1
$ rm notes.txt old-report.txt draft.md

Prüfe Schreibweise und Ort, bevor du Enter drückst. Eine Sicherung oder eine Kopie in der Versionsverwaltung ist nach dem Löschen verlässlicher als Werkzeuge zur Dateisystemwiederherstellung.

Welcher Befehl entfernt nach einer sorgfältigen Zielprüfung die Datei old-report.txt?

Platzhalterziele vorab prüfen

Die Shell kann einen Platzhalter zu mehreren Operanden erweitern. Beispielsweise wählt *.tmp passende nicht versteckte Namen im aktuellen Verzeichnis aus:

$ rm *.tmp

Zeige dasselbe nicht in Anführungszeichen gesetzte Muster vor dem Entfernen mit ls an:

$ ls *.tmp
cache.tmp  test.tmp
$ rm *.tmp

Die Shell erweitert das Muster, bevor rm startet. Enthält die Vorschau eine unerwartete Datei, korrigiere das Muster, statt fortzufahren.

Du möchtest *.tmp entfernen. Welcher Befehl zeigt zuerst die von diesem Muster ausgewählten nicht versteckten Pfade an, ohne sie zu löschen?

Eine Bestätigung anfordern

Die Option -i fragt vor jeder Entfernung nach:

$ rm -i important.txt
rm: remove regular file 'important.txt'? y

GNU rm bietet mit -I eine weniger aufdringliche Absicherung: Sie fragt einmal nach, wenn ein Befehl mehr als drei Dateien entfernen oder rekursiv arbeiten würde.

Welcher Befehl fragt vor dem Entfernen jeder benannten Datei nach einer Bestätigung?

Fehlende Dateien mit -f ignorieren

Die Option -f ignoriert fehlende Operanden und unterdrückt Nachfragen:

$ rm -f old-cache.txt

Das kann eine skriptgesteuerte Bereinigung wiederholbar machen, wenn eine erzeugte Datei bereits fehlen darf. Da -f Bestätigungen entfernt, solltest du die Option nicht nur ergänzen, um einen unverstandenen Fehler zum Schweigen zu bringen.

Verzeichnisse entfernen

Ein einfaches rm entfernt kein Verzeichnis:

$ rm projects
rm: cannot remove 'projects': Is a directory

Verwende -r oder -R nur dann, wenn du einen Verzeichnisbaum samt seinem gesamten Inhalt entfernen möchtest:

$ rm -r old-project

Für ein leeres Verzeichnis ist rmdir die engere Alternative:

$ rmdir empty-directory

rmdir schlägt fehl, wenn das Verzeichnis nicht leer ist, und schützt dessen Inhalt dadurch vor einer rekursiven Löschung.

Welcher Befehl entfernt old-cache/ nur dann, wenn dieses Verzeichnis leer ist?

Eine rekursive Entfernung prüfen

Rekursives Entfernen kann einen vollständigen Baum löschen. Die Kombination aus -r und -f unterdrückt zusätzlich Nachfragen, weshalb rm -rf eine besonders sorgfältige Zielprüfung verlangt. Prüfe vor jeder rekursiven Entfernung:

  • Befindest du dich im erwarteten Verzeichnis? Verwende pwd.
  • Zeigt ls -ld -- TARGET den vorgesehenen obersten Pfad?
  • Passt eine schreibgeschützte Vorschau bei einem Platzhalter genau zu deiner Erwartung?
  • Ist der Pfad absolut oder relativ? /tmp/cache und tmp/cache unterscheiden sich grundlegend.
  • Gibt es ein versehentliches Leerzeichen? rm -rf old-project und rm -rf old project betreffen unterschiedliche Pfade.

Setze -- vor ein Ziel, das mit einem Bindestrich beginnen könnte, damit es nicht als Option interpretiert wird:

$ rm -- -old-name

Greife nicht allein deshalb zu sudo, weil rm einen Berechtigungsfehler meldet. Prüfe zuerst das Ziel und ermittle, warum dein Konto das enthaltende Verzeichnis nicht ändern darf. Eine rekursive Entfernung mit erhöhten Rechten kann das Betriebssystem oder Daten anderer Benutzer beschädigen.

Mit -v meldet rm jede erfolgreiche Entfernung:

$ rm -rv old-project
removed 'old-project/notes.txt'
removed directory 'old-project'

Welcher Befehl entfernt nach vollständiger Zielprüfung old-project/ samt allen darunterliegenden Inhalten, ohne normale Nachfragen zu unterdrücken?

Mit diesen Übungen kannst du das Entfernen in einer kontrollierten Umgebung trainieren:

  1. Linux rm Command: File Removing – Entferne mit rm Dateien und Verzeichnisse, verwende Optionen wie -r und -i und übe ein sicheres Vorgehen.
  2. Organizing Files and Directories – Wende rm in einer praktischen Aufgabe an, um nicht mehr benötigte Verzeichnisse aus einer Projektstruktur zu entfernen.

Lektion abgeschlossen

Sie haben rm (Entfernen) abgeschlossen

Du kannst nun Dateisystemeinträge entfernen und dabei jedes Ziel als unwiderruflich behandeln.

  • Bestätige Dateipfade vor der Entfernung.

  • Prüfe Platzhaltererweiterungen mit einem schreibgeschützten Befehl.

  • Fordere mit -i oder -I eine Bestätigung an.

  • Bevorzuge rmdir, wenn ein Verzeichnis leer sein muss.

  • Prüfe ein vollständiges Ziel vor jeder rekursiven Entfernung.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Befehlszeile