rm
rm - Dateien oder Verzeichnisse entfernen
Beschreibung
- Entfernen (unlink) von DATEI(en)
- rm entfernt jede angegebene Datei
- Standardmäßig entfernt rm keine Verzeichnisse
- Vorsicht
Dateien, die im Terminal mit dem Befehl rm gelöscht werden, landen nicht im Papierkorb
- Interaktiv
Falls die Option -I oder --interactive=once angegeben ist und es mehr als drei Dateien gibt oder -r, -R oder --recursive angegeben sind, dann fragt rm den Anwender, ob er mit der Operation fortfahren möchte. Falls die Antwort nicht bestätigend ist, wird der ganze Befehl abgebrochen.
Anderenfalls fragt rm den Anwender, ob die Datei entfernt werden soll, falls diese nicht schreibbar ist, die Standardeingabe ein Terminal ist und die Option -f oder --force nicht angegeben ist oder die Option -i oder --interactive=always nicht angegeben ist. Falls die Antwort nicht bestätigend ist, wird die Datei übersprungen.
Besondere Dateien
- Verzeichnisse
Standardmäßig entfernt rm keine Verzeichnisse
- Bei Benutzung der Option --recursive (-r oder -R) wird jedes aufgeführte Verzeichnis inklusive seiner Inhalte entfernt.
- Verzeichnis-Links
Jeder Versuch, eine Datei zu entfernen, deren letzte Komponente . oder .. ist, wird mit einer Diagnosemeldung zurückgewiesen.
- Führender Bindestrich
Um Dateien zu entfernen, deren Namen mit - beginnen, z. B. -foo, verwenden Sie einen dieser Befehle
rm -- -foo
oder
rm ./-foo
Installation
rm ist Teil des Paket Coreutils, das auf jedem Linux-System installiert sein sollte
Aufruf
rm [OPTION]… DATEI…
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-i | Vor jeder Entfernung nachfragen | ||
--interactive | [=WANN] | Nachfragen WANN: never (nie), once (-I) (einmal) oder always (-i) (immer). Ohne WANN: Immer | |
-I | Einmal nachfragen, wenn mehr als drei Dateien entfernt werden sollen oder beim rekursiven Entfernen. Weniger aufdringlich als -i, schützt aber vor den meisten Fehlern. | ||
--preserve-root | [=all] | / nicht entfernen (Vorgabe); mit all wird jedes Befehlszeilenargument verworfen, dessen übergeordnetes Verzeichnis auf einem anderen Gerät liegt. | |
--no-preserve-root | "/" nicht besonders behandeln | ||
--one-file-system | Beim rekursiven Entfernen einer Verzeichnishierarchie die Verzeichnisse überspringen, die sich auf einem anderen Dateisystem als das entsprechende Befehlszeilenargument befinden. | ||
-v | --verbose | Durchgeführte Tätigkeiten erklären | |
-r -R |
--recursive | Verzeichnisse und ihre Inhalte rekursiv entfernen | |
-d | --dir | Leere Verzeichnisse entfernen | |
-f | --force | Nicht vorhandene Dateien und Argumente ignorieren, nie nachfragen |
Parameter
Exit-Status
Anwendung
Eine einzelne Datei löschen
rm datei
Mehrere Dateien löschen
rm datei1 datei2 datei3
Alle Dateien und Unterordner im angegebenen Ordner löschen
rm -r Ordnername/*
Alle Dateien und Unterordner inklusive des Ordners selbst löschen
rm -r Ordnername
Dateien mit bestimmten Bezeichnungen im Namen löschen
rm *datei*
Beispiele
Linux bietet verschiedene Möglichkeiten, Dateien und Verzeichnisse basierend auf Dateinamenmustern, Zeit, Größe, Eigentümerschaft, Berechtigungen oder Sicherheitsanforderungen zu entfernen
- Datei ohne Bestätigung löschen
rm -f my.txt
- Alle Dateien mit einer bestimmten Erweiterung löschen
rm *.log
- Alle Dateien, die mit einem bestimmten Präfix beginnen, löschen
rm temp.*
- Ein leeres Verzeichnis löschen (entspricht rmdir leeres_ver)
rm -d leeres_ver
- Ein nicht leeres Verzeichnis löschen
rm -r nicht_leeres_ver
- Alle Dateien in einem Verzeichnis löschen, das Verzeichnis jedoch beibehalten
rm -r mein_ver/*
- Alles außer my.txt und my_dir entfernen
rm -r !(my.txt|my_dir)
- Alle versteckten Dateien aus dem aktuellen Verzeichnis entfernen
rm .[^.]*
- Eine Datei entfernen, die mit einem Sonderzeichen beginnt (z. B. "-")
rm ./-file.txt
- Alle Dateien finden und entfernen, die älter als 7 Tage sind
find . -type f -mtime +7 -delete
- Dateien finden und entfernen, auf die innerhalb der letzten 24 Stunden zugegriffen wurde
find . -type f -atime -1 -delete
- Alle Null-Byte-Dateien finden und entfernen
find . -type f -empty -delete
- Alle leeren Verzeichnisse finden und entfernen
find . -type d -empty -delete
- Dateien finden und entfernen, die größer als 100 MB sind
find . -type f -size +100M -delete
- Dateien suchen und entfernen, die dem Benutzer "peter" gehören
find . -type f -user peter -delete
- Dateien mit Berechtigung 777 suchen und entfernen
find . -type f -perm 0777 -delete
- Nicht leere Verzeichnisse entfernen
find . -type d -name "pattern" -exec rm -r {} +
- Datei anhand ihrer Inode-Nummer (12345) entfernen
find . -inum 12345 -exec rm -f{} +
- Dateien mit gesetztem Setuid-Bit entfernen
find . -type f -perm /4000 -exec rm -f {} +
- Die 5 größten Dateien finden und entfernen (wenn Dateinamen keine Leerzeichen enthalten)
find . -type f -exec du -b {} + | sort-nr head -5 | awk '{print $2}' | xargs rm
- Alle symbolischen Links suchen und entfernen (defekt oder gültig)
find . -type l -delete
- Alle defekten symbolischen Links suchen und entfernen
find . -xtype l -delete
- Eine einzelne Datei entfernen (kann nicht mehrere Dateien verarbeiten)
unlink file.txt
- Eine Datei sicher entfernen, indem der Inhalt mehrmals überschrieben wird
srm file.txt
- Eine Datei mehrmals überschreiben und entfernen
shred -u file.txt
Problembehebung
Anhang
Siehe auch
Dokumentation
- Man-Page
- rm(1)
- unlink(2)
- Info-Page
Vollständige Dokumentation unter: <https://www.gnu.org/software/coreutils/rm> oder lokal verfügbar mit: info '(coreutils) rm invocation'
Links
Projekt
Weblinks