So geben Sie alle Dateien/Ordner sortiert nach Größe aus, auch versteckte

So geben Sie alle Dateien/Ordner sortiert nach Größe aus, auch versteckte


Wie kann ich alle Dateien/Verzeichnisse, auch die versteckten (deren Name mit einem Punkt beginnt), in einem Durchgang nach Größe sortiert ausgeben ?

VonGröße eines Verzeichnisses, ich meine die Summe aller Dateigrößen im Verzeichnis und seinem gesamten Unterverzeichnisbaum.

Der Unterschied zuWie kann ich die Ausgabe du -hnach Größe sortieren?ist, dass ich eine Ausgabe anfordere, die Folgendes beinhaltet:alleDateien und Verzeichnisse im aktuellen Verzeichnis –ob versteckt oder nicht.

Verweise

Antwort1

Wie kann ich alle Dateien/Verzeichnisse, auch die versteckten, nach Größe sortiert ausgeben?

Verwenden Sie diedu(Festplattennutzung)Befehl, der Teil vonGNU-Kerndienstprogramme: 1

du -hs -- * .[^.]* | sort -h

Der.[^.]* regulären Ausdruckstellt sicher, dass versteckte Dateien und Verzeichnisse eingeschlossen werden.

Auflistennur verstecktDateien und Verzeichnisse, sortiert nach aufsteigender Größe:

du -hs -- .[^.]* | sort -h

Aufführennur Verzeichnisse– ob versteckt oder nicht – in aufsteigender Größe sortiert:

du -hs -- */ .[^.]*/ | sort -h

Nur auflistenDateienim aktuellen Verzeichnis

AufführenalleDateien, sortiert nach zunehmender Größe: 2

ls -AhlS | grep '^-' | tac

Nur auflistenverstecktDateien, sortiert nach aufsteigender Größe:

ls -hldS .* | grep '^-' | tac

Nur auflistenregulär(nicht versteckte) Dateien, nach aufsteigender Größe sortiert:

ls -lS | grep '^-' | tac

Auflisten von Dateienrekursiv– im gesamten Unterverzeichnisbaum

Dies wird in der Frage nicht abgefragt, aber manchmal möchten Sie möglicherweise alle Dateien im Unterverzeichnisbaum (einschließlich des aktuellen Verzeichnisses) nach Größe sortiert auflisten. 3

du -ah | sort -h

Die Ausgabe ist eine (möglicherweise erschreckend lange) Liste von Unterverzeichnissen und Dateien. Um die Liste nur auf Dateien zu beschränken, müssen Sie wissen, welche Dateierweiterung die größten Dateien haben (indem Sie sich die Ausgabe des obigen Befehls ansehen).

du -ah | sort -h | grep .<file-extension>

Hier sollten Sie <file-extension>durch zip, png, jpgoder die Dateierweiterung der größten Dateien ersetzen.

Beispiele:

du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png

Verweise


1 Ich verdanke meine Lösung dankbardieser Kommentar. Das --Argumentmarkiert das Ende der Optionen. Bei sehr großen Dateien/Ordnern kann
der Befehl quälend langsam sein. Erwägen Sie die Verwendung desduncduBefehl stattdessen.
Um es auf einem Debian-Derivat, einschließlich Ubuntu, zu installieren, führen Sie Folgendes aus: sudo apt install -y ncdu.
Auf Arch Linux, einschließlich MSYS2, führen Sie Folgendes aus: yes | pacman -Syu ncdu.
Um es zu verwenden, geben Sie ein ncduund drücken Sie .

2 Die -hFlagge vonlsgibt die Dateigrößen in einem für Menschen lesbaren Format aus.
Das -SFlag sortiert die Ausgabe in der ReihenfolgeabnehmendGröße.
Die Pipe | grep '^-'schließt Verzeichnisse und symbolische Links aus.
Die Pipe| tac kehrt die Ausgabe um.

3 Dies ist eher von Interesse, wenn die Größe des aktuellen Verzeichnisses einige Megabyte und nicht einige Gigabyte beträgt.

verwandte Informationen