Linux rm: Befehl, rm -rf und Löschen ohne Rückfrage

rm-Befehl: Was du damit löschst, ist sofort weg, ohne Umweg über einen Papierkorb. rm steht für remove und löscht Dateien und Verzeichnisse; dieser Beitrag zeigt die Grundlagen, die Optionen und warum das Root-Verzeichnis auch nach [rm -rf /] stehen bleibt.
Unter AlmaLinux 9.8 ist für das root-Konto standardmäßig [alias rm=’rm -i’] gesetzt, daher fragt rm vor dem Löschen nach. Für Linux-Systeme ohne diese Einstellung zeigen wir auch, wie du den Alias selbst einträgst.
✅ Grundlegende Verwendung
Die grundlegende Syntax sieht so aus.
rm -Optionen Zu löschende Datei oder Verzeichnis
Eine Datei wird schon mit ihrem Namen gelöscht, ein Verzeichnis erst mit der Option -r.
# Datei löschen
rm file1
# Mehrere Dateien löschen
rm file1 file2
# Verzeichnis samt Inhalt löschen
rm -r dir1/
# Leeres Verzeichnis löschen
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directoryGibst du ein Verzeichnis ohne Option an, wird es wie oben nicht gelöscht.
Löschst du einen symbolischen Link, verschwindet nur der Link, die Zieldatei bleibt erhalten. Vor und nach dem Löschen prüfst du das mit dem ls-Befehl.
✅ rm -rf: ohne Rückfrage löschen
Beim Ausführen von rm kommt die Frage [remove regular file], weil rm beim root-Konto über den Alias [rm -i] läuft.
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Löschst du ein Verzeichnis mit -r, fragt rm beim Betreten jedes Verzeichnisses und bei jeder Datei nach, und je mehr Dateien es sind, desto lästiger wird das.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yDann hängst du zusätzlich -f an: Es wird ohne Rückfrage gelöscht, und auch eine nicht vorhandene Datei erzeugt keinen Fehler.
rm -rf logs/Setzt du einen Backslash [\] vor den Befehl, um den Alias zu umgehen, oder [yes |] davor, damit jede Rückfrage mit y beantwortet wird, kommt dasselbe heraus.
\rm -r logs/
yes | rm -r logs/✅ Optionen des rm-Befehls & Simulator
| Option | Beschreibung | |
|---|---|---|
| -f | --forceLöscht ohne Rückfrage und meldet keinen Fehler bei nicht vorhandenen Dateien | |
| -i | Fragt vor jedem Löschen beim Benutzer nachalias rm='rm -i' | |
| -I(großes i) | Fragt nur einmal, bei vier oder mehr Dateien oder zusammen mit -r | |
| -r, -R | --recursiveLöscht ein Verzeichnis samt Unterverzeichnissen und Dateien | |
| -d | --dirLöscht ein leeres Verzeichnis | |
| -v | --verboseGibt jede gelöschte Datei und jedes Verzeichnis in einer eigenen Zeile aus | |
| --preserve-root | Löscht das Root-Verzeichnis (/) nicht (Standard) | |
| --no-preserve-root | Hebt den Schutz des Root-Verzeichnisses (/) auf |
✅ rm -rf /: Schutz des Root-Verzeichnisses
In der Hosting-Arbeit werden manchmal Dateien gelöscht, die nicht gelöscht werden sollten. Meist lassen sie sich aus einem Backup wiederherstellen, doch ist das Root-Verzeichnis weg, ist die Wiederherstellung selbst mit Snapshot mühsam. Von Fällen, in denen ein falsch ausgeführtes rm -rf nicht mehr rückgängig zu machen war, habe ich mehrmals gehört.
Beim rm-Befehl ist die Option [--preserve-root] standardmäßig aktiv, daher wird das Root-Verzeichnis auch mit [rm -rf /] nicht gelöscht.
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe[rm -rf /*] verhindert sie aber nicht. Die Shell ersetzt [/*] durch Verzeichnisnamen wie /bin, /etc und /home, bevor sie sie weitergibt, und rm löscht dann nicht [/], sondern jedes dieser Verzeichnisse.
Nach der Installation von AlmaLinux 9.8 stehen in [/root/.bashrc] die -i-Aliase für rm, cp und mv wie unten. Normale Benutzerkonten haben diese Aliase nicht.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Auf Konten oder Linux-Systemen ohne den Alias fügst du ganz unten in [~/.bashrc] eine Zeile hinzu und lädst die Datei neu.
# Ganz unten in ~/.bashrc hinzufügen
alias rm='rm -i'
# Neu laden
source ~/.bashrc
ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.