Zum Inhalt springen

Rm: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  df » ssh » ls » rm » rm
K Alaa Eldhawibi verschob die Seite Rm nach Linuxbefehl: rm, ohne dabei eine Weiterleitung anzulegen
K Textersetzung - „““ durch „"“
 
(64 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Bezeichnung=
'''rm''' - Dateien oder Verzeichnisse entfernen
'''rm''' — Remove File


rm löscht Dateien und Verzeichnisse
== Beschreibung ==
; Entfernen (unlink) von DATEI(en)
* rm entfernt jede angegebene Datei
* Standardmäßig entfernt ''rm'' keine [[#Besondere Dateien|Verzeichnisse]]


=Übersicht=
; Vorsicht
<blockquote>Dateien, die im Terminal mit dem Befehl rm gelöscht werden, landen nicht im Papierkorb</blockquote>


rm [Option] Datei oder Verzeichniss
; 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.


=Optionen=
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.
'''rm -i''': Steht für interactive. Fragt bei jedem Löschvorgang ob die Datei wirklich gelöscht werden soll, dies muss dann mit der  Taste „y“ bestätigt werden.<br>
== Besondere Dateien ==
'''rm -r''': Steht für „recursive“. Hier werden alle Dateien und Ordner rekursiv vom angegebenen Pfad gelöscht.<br>
; Verzeichnisse
'''rm -v''': Steht für „verbose“ und Zeigt alles an was der Befehl rm gerade macht.
Standardmäßig entfernt ''rm'' keine Verzeichnisse
* Bei Benutzung der Option  --recursive (-r oder -R) wird jedes aufgeführte Verzeichnis inklusive seiner Inhalte entfernt.


=Beispiel=
; Verzeichnis-Links
Jeder  Versuch,  eine Datei zu entfernen, deren letzte Komponente ''.'' oder ''..'' ist, wird mit einer Diagnosemeldung zurückgewiesen.


  rm dateixyz.txt: "Löscht die Datei „dateixyz.txt“ im aktuellen Arbeitsverzeichnis"
; Führender Bindestrich
  rm -r /tmp: "Löscht das Verzeichnis /tmp inkl. aller Dateien und Unterordner (rekursiv)"
Um Dateien zu entfernen, deren Namen mit ''-'' beginnen, z. B. ''-foo'', verwenden Sie einen dieser Befehle
rm -rv /tmp: "Löscht das Verzeichnis /tmp inkl. aller Dateien und Unterordner (rekursiv) und Zeigt dabei genau an was es                gerade macht (verbose)"
<syntaxhighlight lang="bash" highlight="1" line>
  rm -ri /tmp: "Löscht das Verzeichnis /tmp inkl. aller Dateien und Unterordner (rekursiv) und fragt bei jedem Löschvorgang            nach ob es dies auch wirklich machen soll"
  rm -- -foo
</syntaxhighlight>
oder
<syntaxhighlight lang="bash" highlight="1" line>
  rm ./-foo
</syntaxhighlight>


== Installation ==
''rm'' ist Teil des Paket [[Coreutils]], das auf jedem Linux-System installiert sein sollte


[[Category:Linuxbefehle]]
== Aufruf ==
[[Category:Linux]]
<syntaxhighlight lang="bash" highlight="1" line>
[[Category:Linux:LPIC:101]]
rm [OPTION]… DATEI…
</syntaxhighlight>
 
=== Optionen ===
{| class="wikitable sortable options gnu"
|-
! 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</br>-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
<syntaxhighlight lang="bash" highlight="1" line>
rm datei
</syntaxhighlight>
 
Mehrere Dateien löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm datei1 datei2 datei3
</syntaxhighlight>
 
Alle Dateien und Unterordner im angegebenen Ordner löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm -r Ordnername/*
</syntaxhighlight>
 
Alle Dateien und Unterordner inklusive des Ordners selbst löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm -r Ordnername
</syntaxhighlight>
 
Dateien mit bestimmten Bezeichnungen im Namen löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm *datei*
</syntaxhighlight>
 
== 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
<syntaxhighlight lang="bash" highlight="1" line>
rm -f my.txt
</syntaxhighlight>
 
; Alle Dateien mit einer bestimmten Erweiterung löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm *.log
</syntaxhighlight>
 
; Alle Dateien, die mit einem bestimmten Präfix beginnen, löschen
<syntaxhighlight lang="bash" highlight="1" line>
rm temp.*
</syntaxhighlight>
 
; Ein leeres Verzeichnis löschen (entspricht rmdir leeres_ver)
<syntaxhighlight lang="bash" highlight="1" line>
rm -d leeres_ver
</syntaxhighlight>
 
; Ein nicht leeres Verzeichnis löschen
<syntaxhighlight lang="bash" highlight="1" line="">
rm -r nicht_leeres_ver
</syntaxhighlight>
 
; Alle Dateien in einem Verzeichnis löschen, das Verzeichnis jedoch beibehalten
<syntaxhighlight lang="bash" highlight="1" line>
rm -r mein_ver/*
</syntaxhighlight>
 
; Alles außer my.txt und my_dir entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
rm -r !(my.txt|my_dir)
</syntaxhighlight>
 
; Alle versteckten Dateien aus dem aktuellen Verzeichnis entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
rm .[^.]*
</syntaxhighlight>
 
; Eine Datei entfernen, die mit einem Sonderzeichen beginnt (z. B. "-")
<syntaxhighlight lang="bash" highlight="1" line="">
rm ./-file.txt
</syntaxhighlight>
 
; Alle Dateien finden und entfernen, die älter als 7 Tage sind
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -mtime +7 -delete
</syntaxhighlight>
 
; Dateien finden und entfernen, auf die innerhalb der letzten 24 Stunden zugegriffen wurde
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -atime -1 -delete
</syntaxhighlight>
 
; Alle Null-Byte-Dateien finden und entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -empty -delete
</syntaxhighlight>
 
; Alle leeren Verzeichnisse finden und entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type d -empty -delete
</syntaxhighlight>
 
; Dateien finden und entfernen, die größer als 100 MB sind
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -size +100M -delete
</syntaxhighlight>
 
; Dateien suchen und entfernen, die dem Benutzer "peter" gehören
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -user peter -delete
</syntaxhighlight>
 
; Dateien mit Berechtigung 777 suchen und entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -perm 0777 -delete
</syntaxhighlight>
 
; Nicht leere Verzeichnisse entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type d -name "pattern" -exec rm -r {} +
</syntaxhighlight>
 
; Datei anhand ihrer Inode-Nummer (12345) entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -inum 12345 -exec rm -f{} +
</syntaxhighlight>
 
; Dateien mit gesetztem Setuid-Bit entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -perm /4000 -exec rm -f {} +
</syntaxhighlight>
 
; Die 5 größten Dateien finden und entfernen (wenn Dateinamen keine Leerzeichen enthalten)
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type f -exec du -b {} + | sort-nr head -5 | awk '{print $2}' | xargs rm
</syntaxhighlight>
 
; Alle symbolischen Links suchen und entfernen (defekt oder gültig)
<syntaxhighlight lang="bash" highlight="1" line="">
find . -type l -delete
</syntaxhighlight>
 
; Alle defekten symbolischen Links suchen und entfernen
<syntaxhighlight lang="bash" highlight="1" line="">
find . -xtype l -delete
</syntaxhighlight>
 
; Eine einzelne Datei entfernen (kann nicht mehrere Dateien verarbeiten)
<syntaxhighlight lang="bash" highlight="1" line>
unlink file.txt
</syntaxhighlight>
 
; Eine Datei sicher entfernen, indem der Inhalt mehrmals überschrieben wird
<syntaxhighlight lang="bash" highlight="1" line>
srm file.txt
</syntaxhighlight>
 
; Eine Datei mehrmals überschreiben und entfernen
<syntaxhighlight lang="bash" highlight="1" line>
shred -u file.txt
</syntaxhighlight>
 
== Problembehebung ==
 
<noinclude>
 
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
* [[unlink]](1)
* [[chattr]](1)
* [[shred]](1)
 
=== 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 ====
 
{{DEFAULTSORT:rm}}
{{DISPLAYTITLE:rm}}
 
[[Kategorie:Linux/Datei/Verwaltung]]
[[Kategorie:Coreutils]]
[[Kategorie:Linux/Befehl]]
 
</noinclude>

Aktuelle Version vom 31. März 2025, 22:01 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
  1. rm(1)
  2. 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