Rm: Unterschied zwischen den Versionen
K Textersetzung - „„“ durch „"“ |
K Textersetzung - „line>“ durch „line copy>“ |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 23: | Zeile 23: | ||
; Führender Bindestrich | ; Führender Bindestrich | ||
Um Dateien zu entfernen, deren Namen mit ''-'' beginnen, z. B. ''-foo'', verwenden Sie einen dieser Befehle | Um Dateien zu entfernen, deren Namen mit ''-'' beginnen, z. B. ''-foo'', verwenden Sie einen dieser Befehle | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -- -foo | rm -- -foo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
oder | oder | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm ./-foo | rm ./-foo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 35: | Zeile 35: | ||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm [OPTION]… DATEI… | rm [OPTION]… DATEI… | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 58: | Zeile 58: | ||
| || --preserve-root || [=all]|| ''/'' nicht entfernen (Vorgabe); mit ''all'' wird jedes Befehlszeilenargument verworfen, dessen übergeordnetes Verzeichnis auf einem anderen Gerät liegt. | | || --preserve-root || [=all]|| ''/'' nicht entfernen (Vorgabe); mit ''all'' wird jedes Befehlszeilenargument verworfen, dessen übergeordnetes Verzeichnis auf einem anderen Gerät liegt. | ||
|- | |- | ||
| || --no-preserve-root || || "/ | | || --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. | | || --one-file-system || || Beim rekursiven Entfernen einer Verzeichnishierarchie die Verzeichnisse überspringen, die sich auf einem anderen Dateisystem als das entsprechende Befehlszeilenargument befinden. | ||
Zeile 75: | Zeile 75: | ||
== Anwendung == | == Anwendung == | ||
Eine einzelne Datei löschen | Eine einzelne Datei löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm datei | rm datei | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Mehrere Dateien löschen | Mehrere Dateien löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm datei1 datei2 datei3 | rm datei1 datei2 datei3 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle Dateien und Unterordner im angegebenen Ordner löschen | Alle Dateien und Unterordner im angegebenen Ordner löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -r Ordnername/* | rm -r Ordnername/* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle Dateien und Unterordner inklusive des Ordners selbst löschen | Alle Dateien und Unterordner inklusive des Ordners selbst löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -r Ordnername | rm -r Ordnername | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien mit bestimmten Bezeichnungen im Namen löschen | Dateien mit bestimmten Bezeichnungen im Namen löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm *datei* | rm *datei* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 103: | Zeile 103: | ||
; Datei ohne Bestätigung löschen | ; Datei ohne Bestätigung löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -f my.txt | rm -f my.txt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Alle Dateien mit einer bestimmten Erweiterung löschen | ; Alle Dateien mit einer bestimmten Erweiterung löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm *.log | rm *.log | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Alle Dateien, die mit einem bestimmten Präfix beginnen, löschen | ; Alle Dateien, die mit einem bestimmten Präfix beginnen, löschen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm temp.* | rm temp.* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Ein leeres Verzeichnis löschen (entspricht rmdir leeres_ver) | ; Ein leeres Verzeichnis löschen (entspricht rmdir leeres_ver) | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -d leeres_ver | rm -d leeres_ver | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 128: | Zeile 128: | ||
; Alle Dateien in einem Verzeichnis löschen, das Verzeichnis jedoch beibehalten | ; Alle Dateien in einem Verzeichnis löschen, das Verzeichnis jedoch beibehalten | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
rm -r mein_ver/* | rm -r mein_ver/* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 142: | Zeile 142: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Eine Datei entfernen, die mit einem Sonderzeichen beginnt (z. B. "- | ; Eine Datei entfernen, die mit einem Sonderzeichen beginnt (z. B. "-") | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
rm ./-file.txt | rm ./-file.txt | ||
Zeile 172: | Zeile 172: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Dateien suchen und entfernen, die dem Benutzer " | ; Dateien suchen und entfernen, die dem Benutzer "peter" gehören | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -user peter -delete | find . -type f -user peter -delete | ||
Zeile 184: | Zeile 184: | ||
; Nicht leere Verzeichnisse entfernen | ; Nicht leere Verzeichnisse entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type d -name " | find . -type d -name "pattern" -exec rm -r {} + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 213: | Zeile 213: | ||
; Eine einzelne Datei entfernen (kann nicht mehrere Dateien verarbeiten) | ; Eine einzelne Datei entfernen (kann nicht mehrere Dateien verarbeiten) | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
unlink file.txt | unlink file.txt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Eine Datei sicher entfernen, indem der Inhalt mehrmals überschrieben wird | ; Eine Datei sicher entfernen, indem der Inhalt mehrmals überschrieben wird | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
srm file.txt | srm file.txt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Eine Datei mehrmals überschreiben und entfernen | ; Eine Datei mehrmals überschreiben und entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
shred -u file.txt | shred -u file.txt | ||
</syntaxhighlight> | </syntaxhighlight> |
Aktuelle Version vom 11. Mai 2025, 13:44 Uhr
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