GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So entfernen (löschen) Sie das Verzeichnis in Linux

Es gibt verschiedene Möglichkeiten, Verzeichnisse in Linux-Systemen zu entfernen. Wenn Sie einen Desktop-Dateimanager wie Gnome’s Files oder KDE’s Dolphin verwenden, können Sie Dateien und Verzeichnisse über die grafische Benutzeroberfläche des Managers löschen. Wenn Sie jedoch auf einem Headless-Server arbeiten oder mehrere Verzeichnisse auf einmal entfernen möchten, löschen Sie die Verzeichnisse (Ordner) am besten über die Befehlszeile.

In diesem Artikel erklären wir, wie man unter Linux Verzeichnisse mit dem rmdir löscht , rm , und find Befehle.

Bevor Sie beginnen #

Beim Entfernen eines Verzeichnisses mit einem Desktop-Dateimanager wird das Verzeichnis tatsächlich in den Papierkorb verschoben und kann einfach wiederhergestellt werden.

Seien Sie besonders vorsichtig, wenn Sie Dateien oder Verzeichnisse von der Befehlszeile entfernen, denn sobald das Verzeichnis mit den in diesem Artikel erläuterten Befehlen gelöscht wurde, kann es nicht vollständig wiederhergestellt werden.

Auf den meisten Linux-Dateisystemen erfordert das Löschen eines Verzeichnisses eine Schreibberechtigung für das Verzeichnis und seinen Inhalt. Andernfalls erhalten Sie die Fehlermeldung „Vorgang nicht zulässig“.

Verzeichnisnamen mit einem Leerzeichen müssen mit einem Backslash maskiert werden (/ ).

Entfernen von Verzeichnissen mit rmdir #

rmdir ist ein Befehlszeilendienstprogramm zum Löschen leerer Verzeichnisse. Dies ist nützlich, wenn Sie ein Verzeichnis nur löschen möchten, wenn es leer ist, ohne prüfen zu müssen, ob das Verzeichnis leer ist oder nicht.

Um ein Verzeichnis zu löschen mit rmdir , geben Sie den Befehl gefolgt vom Namen des Verzeichnisses ein, das Sie entfernen möchten. Zum Beispiel, um ein Verzeichnis mit dem Namen dir1 zu löschen Sie würden Folgendes eingeben:

rmdir dir1

Wenn das Verzeichnis nicht leer ist, erhalten Sie die folgende Fehlermeldung:

rmdir: failed to remove 'dir1': No such file or directory

In diesem Fall müssen Sie den rm verwenden Befehl oder entfernen Sie den Inhalt des Verzeichnisses manuell, bevor Sie ihn löschen können.

Entfernen von Verzeichnissen mit rm #

rm ist ein Befehlszeilenprogramm zum Löschen von Dateien und Verzeichnissen. Im Gegensatz zu rmdir der rm Der Befehl kann sowohl leere als auch nicht leere Verzeichnisse löschen.

Standardmäßig bei Verwendung ohne Option rm entfernt keine Verzeichnisse. Um ein leeres Verzeichnis zu löschen, verwenden Sie -d (--dir )-Option und um ein nicht leeres Verzeichnis und seinen gesamten Inhalt zu löschen, verwenden Sie den -r (--recursive oder -R )-Option.

Zum Beispiel, um ein Verzeichnis mit dem Namen dir1 zu löschen zusammen mit seinem gesamten Inhalt würden Sie Folgendes eingeben:

rm -r dir1

Wenn ein Verzeichnis oder eine Datei innerhalb des Verzeichnisses schreibgeschützt ist, werden Sie aufgefordert, das Löschen zu bestätigen. Um ein Verzeichnis ohne Aufforderung zu entfernen, verwenden Sie -f Möglichkeit:

rm -rf dir1

Um mehrere Verzeichnisse gleichzeitig zu entfernen, rufen Sie rm auf Befehl, gefolgt von den Namen der Verzeichnisse, getrennt durch Leerzeichen. Der folgende Befehl entfernt jedes aufgelistete Verzeichnis und seinen Inhalt:

rm -r dir1 dir2 dir3

Das -i Option teilt rm mit um Sie aufzufordern, das Löschen jedes Unterverzeichnisses und jeder Datei zu bestätigen. Wenn das Verzeichnis viele Dateien enthält, kann dies etwas lästig sein, daher sollten Sie die Verwendung des -I in Betracht ziehen Option, die Sie nur einmal auffordert, bevor Sie mit dem Löschen fortfahren.

rm -rI dir1

Um das Verzeichnis zu entfernen, geben Sie y ein und drücken Sie Enter .

rm: remove 1 argument recursively? y

Sie können auch reguläre Erweiterungen verwenden, um mehrere Verzeichnisse abzugleichen und zu löschen. Zum Beispiel, um alle Verzeichnisse der ersten Ebene im aktuellen Verzeichnis zu entfernen, die mit _bak enden , würden Sie den folgenden Befehl verwenden:

rm -r *_bak

Die Verwendung regulärer Erweiterungen beim Entfernen von Verzeichnissen kann riskant sein. Es empfiehlt sich, zuerst die Verzeichnisse mit dem ls aufzulisten Befehl, damit Sie sehen können, welche Verzeichnisse gelöscht werden, bevor Sie rm ausführen Befehl.

Entfernen von Verzeichnissen mit find #

find ist ein Befehlszeilenprogramm, mit dem Sie anhand eines bestimmten Ausdrucks nach Dateien und Verzeichnissen suchen und eine Aktion für jede übereinstimmende Datei oder jedes Verzeichnis ausführen können.

Das häufigste Szenario ist die Verwendung von find Befehl zum Löschen von Verzeichnissen nach einem Muster. Zum Beispiel, um alle Verzeichnisse zu löschen, die auf _cache enden im aktuellen Arbeitsverzeichnis würden Sie Folgendes ausführen:

find . -type d -name '*_cache' -exec rm -r {} +

Analysieren wir den obigen Befehl:

  • /dir - im aktuellen Arbeitsverzeichnis rekursiv suchen (. ).
  • -type d - beschränkt die Suche auf Verzeichnisse.
  • -name '*_cache' - Nur Verzeichnisse durchsuchen, die auf _cache enden
  • -exec - führt einen externen Befehl mit optionalen Argumenten aus, in diesem Fall also rm -r .
  • {} + - fügt die gefundenen Dateien an das Ende des rm an Befehl.

Entferne alle leeren Verzeichnisse #

Um alle leeren Verzeichnisse in einem Verzeichnisbaum zu entfernen, würden Sie Folgendes ausführen:

find /dir -type d -empty -delete

Hier ist eine Erklärung für die verwendeten Optionen:

  • /dir - rekursiv im /dir suchen Verzeichnis.
  • -type d - beschränkt die Suche auf Verzeichnisse.
  • -empty - Beschränkt die Suche nur auf leere Verzeichnisse.
  • -delete - löscht alle gefundenen leeren Verzeichnisse im Teilbaum. -delete kann nur leere Verzeichnisse löschen.

Verwenden Sie das -delete Option mit äußerster Vorsicht. Die Suchbefehlszeile wird als Ausdruck ausgewertet, und wenn Sie den -delete hinzufügen Option zuerst, löscht der Befehl alles unterhalb der angegebenen Startpunkte.

Testen Sie den Befehl immer zuerst ohne -delete Option und verwenden Sie -delete als letzte Option.

/bin/rm:Argumentliste zu lang #

Diese Fehlermeldung erscheint, wenn Sie den rm verwenden Befehl zum Entfernen eines Verzeichnisses, das eine große Anzahl von Dateien enthält. Dies geschieht, weil die Anzahl der Dateien die Systemgrenze für die Größe des Befehlszeilenarguments überschreitet.

Es gibt verschiedene Lösungen für dieses Problem. Zum Beispiel können Sie cd in das Verzeichnis und manuell oder mit einer Schleife, um Unterverzeichnisse einzeln zu entfernen.

Die einfachste Lösung ist, zuerst alle Dateien innerhalb des Verzeichnisses mit find zu löschen Befehl und löschen Sie dann das Verzeichnis:

find /dir -type f -delete && rm -r /dir

Schlussfolgerung #

Mit rm und find Sie können Verzeichnisse anhand verschiedener Kriterien schnell und effizient löschen.

Das Löschen von Verzeichnissen ist ein einfacher und einfacher Vorgang, aber Sie müssen vorsichtig sein, keine wichtigen Daten zu löschen.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. So löschen Sie Benutzerkonten mit Home-Verzeichnis in Linux

  2. So suchen und entfernen Sie Verzeichnisse rekursiv unter Linux

  3. Wie lösche ich ein Verzeichnis und einen Ordner in Linux?

  4. So benennen Sie ein Verzeichnis unter Linux um

  5. 5 praktische Beispiele zum Löschen / Entfernen von Verzeichnissen in Linux

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

So finden und löschen Sie leere Verzeichnisse in Linux

So entfernen Sie Dateien und Verzeichnisse unter Linux

So entfernen Sie Dateien und Verzeichnisse auf einem Linux-Terminal

So entfernen/löschen Sie Dateien in Linux mit dem Befehl rm

So kopieren Sie das Verzeichnis unter Linux