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

So finden und löschen Sie leere Verzeichnisse in Linux

Oft werden leere Verzeichnisse im Linux-Dateisystem unübersichtlich, und es wird zu einer schwierigen Aufgabe, sie manuell zu suchen und zu löschen. Der Befehl rmdir (Verzeichnis entfernen ) wird unter Linux verwendet, um leere Ordner zu löschen.

Der Befehl ist recht einfach zu verwenden und die grundlegende Syntax lautet:

$ rmdir <empty folder name1> <empty folder name1> ... <empty folder nameN>

Hier „leerer Ordnername1 ‘, ‘leerer Ordnername2 ‘ usw. sind die Namen der Ordner einschließlich des vollständigen Pfads. Wenn sich die Ordner im selben Verzeichnis befinden, müssen Sie, wie Sie vielleicht bereits wissen, keine vollständigen Pfade aufschreiben.

Sie können auch Platzhalterausdrücke verwenden, um leere Verzeichnisse mit Mustern in ihren Namen zu entfernen. Um beispielsweise leere Verzeichnisse mit dem Teilstring „test“ zu entfernen ‘ Führen Sie in ihrem Namen Folgendes aus:

$ rmdir *test*

Um jedoch rmdir zu verwenden Wir müssen immer den Namen (oder den vollständigen Pfad) jedes leeren Verzeichnisses angeben, das entfernt werden soll. Es gibt keine Option in rmdir um rekursiv nach leeren Verzeichnissen zu suchen und diese dann zu entfernen.

Wir nutzen in solchen Fällen die Funktionalitäten des find-Befehls.

Leere Verzeichnisse in Linux finden und entfernen

Der Suchbefehl wird verwendet, um unter Linux nach Dateien und Ordnern zu suchen, basierend auf verschiedenen Parametern wie Dateiname, Größe, Typ usw. Wir werden find verwenden leere Verzeichnisse rekursiv ermitteln und dann rmdir ausführen um die gefundenen Verzeichnisse zu löschen.

Verwenden Sie das Argument '-empty' um nach leeren Objekten zu suchen und '-type d' anzugeben um nur Verzeichnisse zu finden.

$ find path_of_folder_to_search -type d -empty

Um leere Verzeichnisse rekursiv im selben Ordner zu finden, führen Sie Folgendes aus:

$ find . -type d -empty

Da wir nun bereits die rekursiv gefundene Liste leerer Verzeichnisse haben, verwenden wir den '-exec' Argument des Suchbefehls um rmdir auszuführen über sie.

$ find . -type d -empty -exec rmdir {} \;

Der Platzhalter {} ersetzt jeden Eintrag in der Liste der gefundenen Verzeichnisse und '\;' kennzeichnet das Ende des auszuführenden Befehls.

Aber selbst damit wird es nur eine einzige Suchrunde durchführen und Verzeichnisse entfernen, die leer sind, aber es werden keine Verzeichnisse entfernt, die nach der ersten Löschrunde leer werden.

Um dies anzugehen, verwenden wir einfach den '-delete' Option, die wiederholt alle leeren Verzeichnisse bis zum Verzeichnis der obersten Ebene löscht.

$ find . -type d -empty -delete

So können wir unter Linux alle leeren Verzeichnisse rekursiv entfernen.

Schlussfolgerung

Wir haben gelernt, wie man rmdir verwendet Befehl und Suchbefehl in Linux leere Verzeichnisse rekursiv zu löschen. Erfahren Sie mehr über diese Befehle auf den jeweiligen Manpages:

$ man rmdir
$ man find

Vielen Dank fürs Lesen und teilen Sie Ihre Gedanken unten mit!


Linux
  1. So suchen und entfernen Sie Verzeichnisse rekursiv unter Linux

  2. Finden Sie Dateien und Verzeichnisse in Linux wie ein Profi

  3. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  4. Linux Dateien und Verzeichnisse löschen

  5. So finden und löschen Sie leere Verzeichnisse und Dateien in Unix

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

So finden und löschen Sie doppelte Dateien in Linux

So finden und löschen Sie defekte Symlinks in Linux

So entfernen Sie Dateien und Verzeichnisse unter Linux

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile