Rm: Unterschied zwischen den Versionen
Erscheinungsbild
Zeile 66: | Zeile 66: | ||
== Beispiele == | == Beispiele == | ||
Datei ohne Bestätigung löschen | 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 | |||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line> | ||
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> | ||
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> | ||
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> | ||
rm -d leeres_ver | rm -d leeres_ver | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ein nicht leeres Verzeichnis löschen | ; Ein nicht leeres Verzeichnis löschen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
rm -r nicht_leeres_ver | rm -r nicht_leeres_ver | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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> | ||
rm -r mein_ver/* | rm -r mein_ver/* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alles außer my.txt und my_dir entfernen | ; Alles außer my.txt und my_dir entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
rm -r !(my.txt|my_dir) | rm -r !(my.txt|my_dir) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle versteckten Dateien aus dem aktuellen Verzeichnis entfernen | ; Alle versteckten Dateien aus dem aktuellen Verzeichnis entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
rm .[^.]* | rm .[^.]* | ||
</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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle Dateien finden und entfernen, die älter als 7 Tage sind | ; Alle Dateien finden und entfernen, die älter als 7 Tage sind | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -mtime +7 -delete | find . -type f -mtime +7 -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien finden und entfernen, auf die innerhalb der letzten 24 Stunden zugegriffen wurde | ; Dateien finden und entfernen, auf die innerhalb der letzten 24 Stunden zugegriffen wurde | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -atime -1 -delete | find . -type f -atime -1 -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle Null-Byte-Dateien finden und entfernen | ; Alle Null-Byte-Dateien finden und entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -empty -delete | find . -type f -empty -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle leeren Verzeichnisse finden und entfernen | ; Alle leeren Verzeichnisse finden und entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type d -empty -delete | find . -type d -empty -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien finden und entfernen, die größer als 100 MB sind | ; Dateien finden und entfernen, die größer als 100 MB sind | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -size +100M -delete | find . -type f -size +100M -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien suchen und entfernen, die dem Benutzer „peter“ gehören | ; 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien mit Berechtigung 777 suchen und entfernen | ; Dateien mit Berechtigung 777 suchen und entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -perm 0777 -delete | find . -type f -perm 0777 -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Nicht leere Verzeichnisse entfernen | ; Nicht leere Verzeichnisse entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type d -name „pattern“ -exec rm -r {} + | find . -type d -name „pattern“ -exec rm -r {} + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Datei anhand ihrer Inode-Nummer (12345) entfernen | ; Datei anhand ihrer Inode-Nummer (12345) entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -inum 12345 -exec rm -f{} + | find . -inum 12345 -exec rm -f{} + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Dateien mit gesetztem Setuid-Bit entfernen | ; Dateien mit gesetztem Setuid-Bit entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -perm /4000 -exec rm -f {} + | find . -type f -perm /4000 -exec rm -f {} + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die 5 größten Dateien finden und entfernen (wenn Dateinamen keine Leerzeichen enthalten) | ; Die 5 größten Dateien finden und entfernen (wenn Dateinamen keine Leerzeichen enthalten) | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type f -exec du -b {} + | sort-nr head -5 | awk '{print $2}' | xargs rm | find . -type f -exec du -b {} + | sort-nr head -5 | awk '{print $2}' | xargs rm | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle symbolischen Links suchen und entfernen (defekt oder gültig) | ; Alle symbolischen Links suchen und entfernen (defekt oder gültig) | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -type l -delete | find . -type l -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Alle defekten symbolischen Links suchen und entfernen | ; Alle defekten symbolischen Links suchen und entfernen | ||
<syntaxhighlight lang="bash" highlight="1" line=""> | <syntaxhighlight lang="bash" highlight="1" line=""> | ||
find . -xtype l -delete | find . -xtype l -delete | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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> | ||
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> | ||
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> | ||
shred -u file.txt | shred -u file.txt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Problembehebung == | == Problembehebung == |
Version vom 13. Februar 2025, 12:59 Uhr
rm - remove
Beschreibung
rm löscht Dateien
- auch komplette Verzeichnisse
- Vorsicht
Dateien, die im Terminal mit dem Befehl rm gelöscht werden, landen nicht im Papierkorb
Installation
rm ist Teil des Paket Coreutils, das auf jedem Linux-System installiert sein sollte
Aufruf
rm [OPTION] DATEI[EN]
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-i | --interactive | vor dem Löschen eine Nachfrage | |
--preserve-root | nicht rekursiv auf „/“ arbeiten | ||
--no-preserve-root | „/“ nicht besonders behandeln | ||
--one-file-system | beim rekursiven Entfernen einer Verzeichnishierarchie die Verzeichnisse überspringen, die sich auf einem anderen Gerät als der Parameter befinden | ||
-v | --verbose | durchgeführte Tätigkeiten erklären | |
-r -R |
--recursive | Verzeichnisse und deren Inhalte rekursiv entfernen | |
-f | --force | keine Nachfrage beim Löschen |
Parameter
Umgebungsvariablen
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
Info-Pages
Links
Projekt
Weblinks