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

Die Befehle rm und   rmdir löschen Dateien und Verzeichnisse unter Linux, macOS und anderen Unix-ähnlichen Betriebssystemen. Sie ähneln den Befehlen del und   deltree in Windows und DOS. Diese Befehle sind sehr leistungsfähig und bieten einige Optionen.

Es ist wichtig zu beachten , dass Dateien und Verzeichnisse gelöscht verwenden rmund rmdirnicht in den Papierkorb verschoben bekommen. Sie werden sofort von Ihrem Computer entfernt. Wenn Sie versehentlich Dateien mit diesen Befehlen löschen, können Sie sie nur aus einer Sicherung wiederherstellen.

So entfernen Sie Dateien mit rm

Der einfachste Fall ist das Löschen einer einzelnen Datei im aktuellen Verzeichnis. Geben Sie den rmBefehl, ein Leerzeichen und dann den Namen der Datei ein, die Sie löschen möchten.

rm file_1.txt

Wenn sich die Datei nicht im aktuellen Arbeitsverzeichnis befindet, geben Sie einen Pfad zum Speicherort der Datei an.

rm ./path/to/the/file/file_1.txt

Sie können mehr als einen Dateinamen an übergeben rm. Dadurch werden alle angegebenen Dateien gelöscht.

rm file_2.txt file_3.txt

Platzhalter können verwendet werden, um Gruppen von Dateien auszuwählen, die gelöscht werden sollen. Das *repräsentiert mehrere Zeichen und das ?repräsentiert ein einzelnes Zeichen. Dieser Befehl löscht alle PNG-Bilddateien im aktuellen Arbeitsverzeichnis.

rm * .png

Dieser Befehl löscht alle Dateien mit einer einzelnen Zeichenerweiterung. Dies würde beispielsweise File.1 und File.2 löschen, nicht jedoch File.12.

rm *.?

Wenn eine Datei schreibgeschützt ist, werden Sie aufgefordert, bevor die Datei gelöscht wird. Sie müssen mit yoder antworten nund die Eingabetaste drücken.

rmVerwenden Sie die -iOption (interaktiv), um das Risiko der Verwendung mit Platzhaltern zu verringern . Dazu müssen Sie das Löschen jeder Datei bestätigen.

rm -i * .dat

Die -f Option (Kraft) ist das Gegenteil von interaktiv. Es wird nicht zur Bestätigung aufgefordert, auch wenn die Dateien schreibgeschützt sind.

rm -f Dateiname

So entfernen Sie Verzeichnisse mit rm

Verwenden Sie die -d Option (Verzeichnis), um ein leeres Verzeichnis zu entfernen . Sie können Platzhalter ( *und ?) in Verzeichnisnamen genauso verwenden wie Dateinamen.

rm -d Verzeichnis

Wenn Sie mehr als einen Verzeichnisnamen angeben, werden alle angegebenen leeren Verzeichnisse gelöscht.

rm -d Verzeichnis1 Verzeichnis2 / Pfad / zu / Verzeichnis3

Verwenden Sie die -rOption (rekursiv), um Verzeichnisse zu löschen, die nicht leer sind . Damit werden die Verzeichnisse und alle darin enthaltenen Dateien und Unterverzeichnisse entfernt.

rm -r Verzeichnis1 Verzeichnis2 Verzeichnis3

Wenn ein Verzeichnis oder eine Datei schreibgeschützt ist, werden Sie aufgefordert, den Löschvorgang zu bestätigen. Verwenden Sie die Optionen -r(rekursiv) und -f(erzwingen) zusammen , um nicht leere Verzeichnisse zu löschen und diese Eingabeaufforderungen zu unterdrücken .

rm -rf Verzeichnis

Hier ist Vorsicht geboten. Ein Fehler mit dem rm -rfBefehl kann zu Datenverlust oder Systemstörungen führen. Es ist gefährlich und Vorsicht ist die beste Politik. rm -rfVerwenden Sie den treeBefehl, um ein Verständnis der Verzeichnisstruktur und der Dateien zu erhalten, die vom Befehl gelöscht werden .

Verwenden Sie apt-get diese Option  , um dieses Paket auf Ihrem System zu installieren, wenn Sie Ubuntu oder eine andere Debian-basierte Distribution verwenden. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution.

sudo apt-get install tree

Durch Ausführen des treeBefehls wird ein einfach zu verstehendes Diagramm der Verzeichnisstruktur und der Dateien unter dem Verzeichnis erstellt, aus dem er ausgeführt wird.

Baum

Sie können auch einen Pfad zum treeBefehl angeben, damit der Baum aus einem anderen Verzeichnis im Dateisystem gestartet wird.

Baumpfad / zu / Verzeichnis

Der rmBefehl verfügt auch über --one-file-system, --no-preserve-root, --preserve-rootOptionen, die jedoch nur fortgeschrittenen Benutzern empfohlen werden. Wenn Sie etwas falsch machen, können Sie versehentlich alle Ihre Systemdateien löschen. Weitere Informationen finden Sie auf der Handbuchseite des Befehls.

So entfernen Sie Verzeichnisse mit rmdir

Es gibt einen anderen Befehl namens rmdir, mit dem Sie Verzeichnisse löschen können. Der Unterschied zwischen rmund rmdirbesteht darin, dass rmdirnur leere Verzeichnisse gelöscht werden können. Es werden niemals Dateien gelöscht.

Der einfachste Fall ist das Löschen eines einzelnen leeren Verzeichnisses. Wie bei rmkönnen Sie mehrere Verzeichnisnamen rmdiroder einen Pfad zu einem Verzeichnis übergeben.

Löschen Sie ein einzelnes Verzeichnis im aktuellen Verzeichnis, indem Sie seinen Namen an Folgendes übergeben rmdir:

rmdir-Verzeichnis

Löschen Sie mehrere Verzeichnisse, indem Sie eine Liste mit Namen an rmdirfolgende Adresse übergeben   :

rmdir Verzeichnis1 Verzeichnis2 Verzeichnis3

Löschen Sie ein Verzeichnis, das sich nicht im aktuellen Verzeichnis befindet, indem Sie den vollständigen Pfad zu diesem Verzeichnis angeben:

Verzeichnis rmdir / path / to /

Wenn Sie versuchen, einen Ordner zu löschen, der nicht leer ist, rmdirwird eine Fehlermeldung angezeigt. Im folgenden Beispiel wird rmdirdas clientsVerzeichnis erfolgreich und unbemerkt gelöscht , das Verzeichnis wird jedoch nicht gelöscht, projectsda es Dateien enthält. Das projectsVerzeichnis bleibt genau so wie es war und die darin enthaltenen Dateien bleiben unberührt.

Wenn rmdirder Fehler "Verzeichnis nicht leer" angezeigt wird, werden die Verzeichnisse, die in der Befehlszeile an das Verzeichnis übergeben wurden, nicht mehr verarbeitet. Wenn Sie darum gebeten haben, vier Verzeichnisse zu löschen, und das erste Dateien enthält rmdir, erhalten Sie die Fehlermeldung und tun nichts weiter. Sie können es erzwingen, diese Fehler mit der --ignore-fail-on-non-emptyOption zu ignorieren , damit andere Verzeichnisse verarbeitet werden.

Im folgenden Beispiel wurden zwei Ordner übergeben rmdir, nämlich work/reportsund work/quotes. Die --ignore-fail-on-non-emptyOption wurde in den Befehl aufgenommen. Der work/reportsOrdner enthält Dateien und rmdirkann daher nicht gelöscht werden. Die --ignore-fail-on-non-emptyOption zwingt rmdirdazu, den Fehler zu ignorieren und zum nächsten zu verarbeitenden Ordner zu wechseln work/quotes. Dies ist ein leerer Ordner und rmdirlöscht ihn.

Dies war der verwendete Befehl.

rmdir --ignore-fail-on-nicht leere Arbeit / Berichte / Arbeit / Anführungszeichen

Mit der -p Option (Eltern) können Sie  ein Verzeichnis und auch die übergeordneten Verzeichnisse löschen. Dieser Trick funktioniert, weil er rmdirmit dem Zielverzeichnis beginnt und dann zum übergeordneten Verzeichnis zurückkehrt. Dieses Verzeichnis sollte jetzt leer sein, damit es von gelöscht werden kann rmdir, und der Vorgang wiederholt den Schritt zurück zu dem Pfad, für den angegeben wurde rmdir.

Im folgenden Beispiel lautet der Befehl, an den übergeben rmdirwird:

rmdir -p Arbeit / Rechnungen

Sowohl das invoicesals auch das workVerzeichnis werden wie gewünscht gelöscht.

Unabhängig davon, ob Sie Bash oder eine andere Shell verwenden, bietet Linux flexible und leistungsstarke Befehle zum Löschen von Verzeichnissen und Dateien direkt über die Terminalbefehlszeile. Einige Leute bevorzugen einen Workflow, der sich um das Terminal dreht. Andere haben möglicherweise keine Wahl. Sie arbeiten möglicherweise auf Servern ohne installierte GUI oder in einer Remotesitzung auf einem kopflosen System wie einem Raspberry Pi. Diese Befehle sind perfekt für diese Personengruppe.

Unabhängig von der Art des Workflows, den Sie bevorzugen, eignen sich diese Befehle sehr gut für die Aufnahme in Shell-Skripte. Wenn ein Skript von einem cronJob ausgelöst wird , kann es dazu beitragen, routinemäßige Verwaltungsaufgaben wie das Löschen unerwünschter Protokolldateien zu automatisieren. Wenn Sie diesen Anwendungsfall untersuchen, denken Sie an die Leistungsfähigkeit dieser Befehle, testen Sie alles sorgfältig und führen Sie immer eine aktuelle Sicherung durch.