Der Linux-rm-Befehl: Alles, was Sie wissen müssen

Veröffentlicht: 2023-01-22
Linux-Laptop mit einer Bash-Eingabeaufforderung
fatmawati achmad zaenuri/Shutterstock.com
Mit dem Befehl rm können Sie eine Datei oder ein Verzeichnis löschen, indem Sie ihren Namen übergeben: „rm filename“ oder „rm -d directory“. Sie können auch einen Verzeichnispfad angeben. Wenn sich Dateien im Verzeichnis befinden, verwenden Sie die Option -r "rm -r directory", um Dateien und Ordner rekursiv zu löschen.

Der Linux-Befehl rm löscht Dateien und Verzeichnisse. Um dieses Tool sicher zu verwenden, müssen Sie sicher sein, was passieren wird, wenn Sie „Enter“ drücken. Hier ist, was Sie wissen müssen.

Inhaltsverzeichnis

Was ist der rm-Befehl in Linux?
So löschen Sie Dateien mit rm
Verwenden von Platzhaltern mit rm
rm interaktiv verwenden
Verwenden der rm-Force-Option
Verzeichnisse löschen mit rm
Vermeidung von Fehlern bei der Verwendung von rm
Welche PSA?

Was ist der rm-Befehl in Linux?

Der Linux-Befehl rm dient hauptsächlich zum Löschen von Dateien. Es ist eines, auf das die meisten Menschen stoßen, sobald sie anfangen, Linux zu verwenden. Nur weil Sie ein Linux-Neuling sind, werden Sie wahrscheinlich Fehler machen. Sie erstellen oder kopieren Dateien versehentlich, mit falschem Namen oder an den falschen Ort. Es ist alles Teil der Lernkurve der Befehlszeile. Die Bereinigungsoperationen für solche Fehler beinhalten rm .

8 Tippfehler, die Sie unter Linux wirklich vermeiden müssen
VERWANDTE 8 Tippfehler, die Sie unter Linux wirklich vermeiden müssen

Der Befehl rm kann Dateien, Dateigruppen, Verzeichnisse oder komplette Verzeichnisbäume löschen. Deshalb muss es mit Vorsicht verwendet werden. Die Verwendung von rm ist nicht schwierig, aber die Strafe für einen Fehler ist hoch.

Wenn eine Datei mit rm gelöscht wird, ist sie weg. Es wird nicht in den Papierkorb verschoben. Es wird sofort ausgelöscht. Das bedeutet nicht, dass Sie die Verwendung von rm vermeiden sollten. Aber um es sicher zu verwenden, müssen Sie sich dessen bewusst sein, was es kann, und sicherstellen, dass Sie es richtig verwenden.

Einige Tools sind gefährlicher als andere und weitaus weniger fehlerverzeihend. Deshalb gab es nie einen Film namens The Texas Wrench Massacre . rm ist kein Schraubenschlüssel, es ist definitiv eine Kettensäge.

Menschen benutzen jeden Tag den ganzen Tag Kettensägen, und solange sie verantwortungsbewusst und achtsam damit umgehen, geht es ihnen gut. Genauso verhält es sich mit rm . Wenn Sie rm aus Ihrer Werkzeugtasche ziehen, sollten Sie langsamer werden und Ihre Befehlszeile überprüfen, dann noch einmal überprüfen.

Der Befehl rm ist eine ausführbare Datei, er ist nicht Teil der Shell. Obwohl wir hier Bash verwenden, handelt es sich um den Standard-Linux- rm und nicht um einen speziellen Bash- rm .

VERWANDT: Befehlszeilen: Warum stören sich die Leute immer noch an ihnen?

So löschen Sie Dateien mit rm

Der einfachste Weg, rm zu verwenden, besteht darin, den Namen einer Datei anzugeben, die Sie löschen möchten.

 rm config.gc 

Löschen einer einzelnen Datei durch Übergabe ihres Dateinamens an rm

Sie kehren automatisch zur Befehlszeile zurück. rm nimmt die klassische, geschlossene Linux-Haltung ein, dass Sie davon ausgehen können, dass es das getan hat, was Sie verlangt haben, wenn es sich über nichts beschwert. Die Angabe eines Dateinamens wie diesem bewirkt, dass rm im aktuellen Arbeitsverzeichnis nach der Datei sucht.

Sie können mehrere Dateinamen in der Befehlszeile angeben. Sie können auch einen Verzeichnispfad angeben, wenn sich eine zu löschende Datei nicht im aktuellen Verzeichnis befindet.

 rm memlog.sh /home/dave/dev-archive/config.gc 

Löschen von zwei Dateien durch Übergabe ihres Dateinamens und Verzeichnispfads an rm

Auch hier wird nichts gemeldet, wenn es rm gelingt, die angegebenen Dateien zu löschen.

VERWANDT: 37 Wichtige Linux-Befehle, die Sie kennen sollten

Verwenden von Platzhaltern mit rm

Mit Platzhaltern können Sie Gruppen oder Sammlungen von Dateien angeben, ohne die einzelnen Dateien in der Befehlszeile auflisten zu müssen.

Das Sternchen „ * “ steht für eine beliebige Folge von Zeichen, einschließlich keiner. Das Fragezeichen „ ? ” steht für ein beliebiges einzelnes Zeichen.

Um zu überprüfen, ob Ihre Wildcards Ihren Erwartungen entsprechen, und nicht mehr, können Sie sie mit ls verwenden, bevor Sie sie mit rm verwenden.

Um alle PNG-Dateien im aktuellen Verzeichnis zu löschen, verwenden Sie „*.png“. Das bedeutet, dass jede Zeichenfolge gefolgt von „.png“ abgeglichen wird. Wenn die Dateien gelöscht wurden, können wir mit ls überprüfen, ob sie weg sind.

 ls *.png
 rm *.png
 ls *.png 

Verwenden des Sternchen-Platzhalters, um alle Dateien mit der Dateierweiterung PNG zu löschen

Auf unserem Testcomputer haben wir zwei Dateien im aktuellen Verzeichnis, deren Namen mit „config“ beginnen.

Wir können beide löschen, indem wir den Sternchen-Platzhalter verwenden. Es stimmt mit beiden Dateien überein, da rm nach Dateinamen sucht, die mit „config“ beginnen, gefolgt von einer beliebigen Zeichenfolge. Bei einer Datei lautet diese Zeichenfolge „.sl3“, die Dateinamenerweiterung. Der andere Dateiname hat keine Zeichen nach „config“, aber da das Sternchen mit beliebigen Zeichen oder keinen Zeichen übereinstimmt, passt es auch zu diesem Dateinamen.

 ls-Konfiguration*
 rm-Konfiguration*
 ls-Konfiguration* 

Verwenden des Sternchen-Platzhalters zum Löschen von zwei Dateien, eine mit und eine ohne Dateierweiterung

Sie können das Fragezeichen paarweise verwenden. Dadurch werden Dateien gelöscht, deren Dateierweiterungen genau zwei Zeichen lang sind.

 ls *.??
 rm *.??
 ls *.?? 

Verwenden von zwei Fragezeichen-Platzhaltern zum Löschen von Dateien mit Dateierweiterungen von genau zwei Zeichen

VERBINDUNG: 15 Sonderzeichen, die Sie für Bash kennen müssen

rm interaktiv verwenden

Ein sicherer Weg, rm zu verwenden, besteht darin, es zu zwingen, nach einer Bestätigung zu fragen, bevor es jede Datei löscht. Mit der Option -i (interaktiv) können Sie dies tun. Wenn Sie diese Option zu Ihrer Befehlszeile hinzufügen, werden Sie von rm vor jedem Löschen aufgefordert, sodass Sie die Möglichkeit haben, Aktionen zu überspringen, die Sie nicht beabsichtigt hatten.

Wir verwenden in diesem Befehl die Option -i (interaktiv). Es versucht, alle Dateien mit einer Dateierweiterung mit einem einzigen Zeichen zu löschen.

 rm -i *.? 

Interaktive Verwendung von rm, sodass vor jedem Löschen eine Eingabeaufforderung angezeigt wird

Jede übereinstimmende Datei wird der Reihe nach präsentiert. Wenn Sie mit „y“ oder „Y“ antworten, wird die Datei gelöscht. Antworten Sie mit „n“, bleibt die Datei erhalten. Wenn Sie mit etwas anderem als „y“ oder „y“ antworten, bleibt die Datei erhalten. Sie können einfach „Enter“ drücken und die Datei bleibt erhalten.

Sie können Ihre Dateiliste schnell durcharbeiten, Dateien löschen oder überspringen, um diejenigen auszuwählen, die Sie entfernen möchten. Wie wir sehen werden, können Sie die Option i- (interaktiv) mit anderen rm Optionen verwenden.

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten

Verwenden der rm-Force-Option

Wenn Sie versuchen, eine schreibgeschützte Datei zu löschen, fordert rm Sie zur Bestätigung auf, bevor die Datei gelöscht wird. Das ist ein gutes Sicherheitsnetz, aber eines, das langweilig werden könnte, wenn Sie viele Dateien löschen müssen.

 rm geonames.sl3 

rm fordert den Benutzer auf, zu bestätigen, dass er eine schreibgeschützte Datei löschen möchte

Die Option -f (erzwingen) weist rm an, niemals nachzufragen. Sie sagen ihm: "Ja, löschen Sie alle Dateien, zu denen Sie mich normalerweise auffordern würden." Es verhindert auch, dass rm sich über nicht vorhandene Dateien beschwert.

 rm -f Geonamen.sl3 

Verwenden der Option -f (erzwingen), um zu verhindern, dass rm zu Löschungen auffordert

Die Option -f (force) wird häufig verwendet, wenn Sie eine verschachtelte Gruppe von Dateien und Verzeichnissen löschen.

Verzeichnisse löschen mit rm

Der Befehl rm kann optional auch Verzeichnisse samt den darin enthaltenen Dateien entfernen. Dies ähnelt dem Befehl rmdir , aber rmdir kann keine Verzeichnisse mit darin enthaltenen Dateien löschen. Es löscht nur leere Verzeichnisse. Der Befehl rm kann problemlos Verzeichnisse löschen, die Dateien und andere Verzeichnisse enthalten.

So löschen Sie Dateien und Verzeichnisse im Linux-Terminal
VERWANDT So löschen Sie Dateien und Verzeichnisse im Linux-Terminal

Das Löschen eines Verzeichnisses ähnelt dem Löschen einer Datei. Wir geben den Namen des Verzeichnisses in der Befehlszeile an. Wir müssen die Option -d (Verzeichnis) einfügen. Wie beim Löschen von Dateien können wir den Namen mehrerer Verzeichnisse angeben. Wir können einen Pfad zu einem Verzeichnis angeben, das sich nicht im aktuellen Arbeitsverzeichnis befindet.

 rm -d alte Projekte 

Verwenden der Option -d (Verzeichnis) zum Löschen eines Verzeichnisses

Wenn das Verzeichnis Dateien enthält, schlägt dies fehl.

Um ein Verzeichnis und seinen Inhalt zu löschen, verwenden Sie das Flag -r (rekursiv). Dadurch werden das Verzeichnis, seine Dateien und alle darin enthaltenen verschachtelten Verzeichnisse gelöscht.

 rm -d Archiv
 rm -r Archiv 

Verwenden der Option -r (rekursiv) zum Löschen eines Verzeichnisses und seiner Dateien

Der zweite Befehl ist erfolgreich.

Um rm in den vollwertigen Kettensägenmodus zu schalten, können wir die Optionen -r (rekursiv) und -f (erzwingen) kombinieren. Dies weist rm an, alle Dateien und Verzeichnisse in einem Verzeichnisbaum rekursiv zu löschen, selbst wenn sie schreibgeschützt sind, und ohne uns jemals aufzufordern.

Auf unserem Testcomputer haben wir ein Verzeichnis namens „Migrationscode“. Es enthält Dateien und ein weiteres Verzeichnis namens „6502“. Das Verzeichnis „6502“ enthält auch Dateien und ein weiteres Verzeichnis namens „ASM“. Es gibt auch Dateien in diesem Verzeichnis. Einige der Dateien sind schreibgeschützt.

Wir fügen auch den Befehl -v (verbose) hinzu, damit rm uns mitteilt, was es tut.

 rm -rfv migrierter Code 

Verwenden der -rfv-Flags, um rm zu veranlassen, Dateien und Verzeichnisse, sogar schreibgeschützte Dateien, ohne Aufforderung zu entfernen

In der Ausgabe können wir sehen, dass die Dateien entfernt werden und, wenn sie leer sind, auch die Verzeichnisse entfernt werden.

Die Ausgabe der -rfv-Flags zeigt die gelöschten Dateien und die gelöschten Verzeichnisse, sobald sie leer sind

Vermeidung von Fehlern bei der Verwendung von rm

Leerzeichen und andere seltsame Zeichen in Dateinamen können Probleme bereiten. Dateinamen, die beispielsweise mit einem Bindestrich „ - “ beginnen, können mit Befehlszeilenoptionen verwechselt werden. Wenn wir eine Datei namens „-contributors.txt“ haben, versucht rm , den Namen als eine Folge von Befehlszeilenoptionen zu verarbeiten.

Da rm keine Option namens „ -c “ hat, schlägt die Befehlszeilenanalyse fehl und die Datei wird nicht gelöscht. Um die Datei zu löschen, müssen Sie ihr „./“ voranstellen, um einen Pfad zu ihr bereitzustellen.

 rm -contributors.txt
 rm ./-contributors.txt 

Verwenden von "./", um das Problem des Löschens einer Datei zu umgehen, deren erstes Zeichen ein Bindestrich ist

Auch Leerzeichen in Dateinamen sind problematisch. Geben Sie entweder den gesamten Dateinamen in Anführungszeichen ein oder verwenden Sie die Tabulatorvervollständigung, um den Namen der Datei für Sie in die Befehlszeile einzufügen, wobei Sie die Leerzeichen maskieren. Wenn Sie keine dieser Optionen verwenden, behandelt rm jeden Teil des Dateinamens als einzelne Datei.

Umgang mit Leerzeichen in Dateinamen unter Linux
RELATED How to Deal With Spaces in Filenames on Linux

Hier haben wir zwei Dateien, eine mit dem Namen „backup“ und eine mit dem Namen „backup to delete“. Wir können das Problem mit diesen Dateinamen demonstrieren, indem wir ls verwenden. Wenn wir versuchen, ls für die Datei „backup to delete“ zu verwenden, und wir den Dateinamen nicht maskieren oder in Anführungszeichen setzen, schlägt der Befehl fehl.

 ls -hl Sicherung zum Löschen 

Der Versuch, ls für eine Datei mit Leerzeichen im Namen zu verwenden, ohne die Zeichenfolge in Anführungszeichen zu setzen oder die Leerzeichen zu maskieren

ls beschwert sich, dass es keine Dateien namens „to“ oder „delete“ finden kann, aber es findet eine Datei namens „backup“. Das wird rm auch tun. Es beschwert sich über zwei fehlende Dateien und löscht dann die Datei namens „backup“, was nicht das ist, was wir wollten.

 rm-Sicherung zu löschen 

Der Versuch, rm für eine Datei mit Leerzeichen im Namen zu verwenden, ohne die Zeichenfolge in Anführungszeichen zu setzen oder die Leerzeichen zu maskieren

rm denkt, dass es mit drei Dateien arbeitet, „backup“, „to“ und „delete“. Es beschwert sich, dass es „to“ und „delete“ nicht finden kann, aber es findet „backup“ und löscht es stillschweigend.

Wenn Sie den Dateinamen in Anführungszeichen setzen, kann rm die richtige Datei löschen.

 rm 'Sicherung zum Löschen' 

Verwenden von rm mit einem Dateinamen in Anführungszeichen, um das Problem von Leerzeichen im Dateinamen zu lösen

Sie können die Leerzeichen auch mit Backslashes „ \ “ maskieren, wie folgt:

 rm backup\ to\ delete 

Verwendung von rm mit einem Dateinamen mit Escape-Leerzeichen, um das Problem von Leerzeichen im Dateinamen zu lösen

Wenn Sie die Tab-Vervollständigung verwenden, um Ihre Dateinamen einzugeben, werden sie bei Bedarf automatisch maskiert.

Welche PSA?

Im Gegensatz zu echten Kettensägen gibt es keine persönliche Schutzausrüstung, die Sie mit rm verwenden können.

Sie können Ihre Syntax mit ls überprüfen, bevor Sie es mit rm versuchen, und den interaktiven Modus verwenden, damit Sie entscheiden können, was gelöscht wird.

Abgesehen davon ist es Übung, bis Sie sich wohl und sicher fühlen. Der sicherste Weg, dies zu tun, besteht darin, eine Reihe von Opferdateien in ein Verzeichnis zu kopieren und an diesen zu üben.

VERWANDT: Dateien löschen, die älter als x Tage unter Linux sind