it-swarm.com.de

Die Größe des aktuellen Ordners mit dem Terminal auflisten?

Ich möchte eine Liste der Ordner aus dem aktuellen Verzeichnis oder einen Ordner, den ich mit ihrer Größe angegeben habe.

Ich habe es mit du versucht, aber ich erhalte nur die Größe der von mir angegebenen Verzeichnisse (du ./f1), und ls zeigt die Größe der Ordner nicht an.

Wie mache ich das ohne Scripting?

123
kevin

Wenn Sie alle Verzeichnisse im aktuellen Verzeichnis anzeigen möchten:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/

So zeigen Sie sie von einem anderen Verzeichnis aus an:

$ du -sh /path/to/dir/*/
48K     /path/to/dir/dir1/
4.0K    /path/to/dir/dir2/
6.7M    /path/to/dir/dir3/
20K     /path/to/dir/dir4/
8.0K    /path/to/dir/dir5/
44K     /path/to/dir/dir6/

Wenn Sie sicherstellen möchten, dass Verzeichnisse mit Namen, die mit einem Punkt beginnen, enthalten sind, führen Sie zuerst shopt -s dotglob aus.

201

Auf einem Mac wird die Option --max-depth durch -d [depth] ersetzt. Um eine von Menschen lesbare Liste Ihres Root-Laufwerks plus 2 Ebenen tief zu sehen, verwenden Sie Folgendes:

du -hd 2 /* 

Hinweis: Mit diesem Befehl werden die beiden obersten Verzeichnisebenen von Ihrem Stammverzeichnis angezeigt. Dies umfasst das Durchlaufen einer Ebene in Ihren Volumes und listet die Gesamtgrößen der einzelnen Verzeichnisse der obersten Ebene in jedem Ihrer angehängten Volumes auf. Je nachdem, was Sie angehängt haben, kann dieser Befehl einige Zeit in Anspruch nehmen.

18
jadik

Ein weiterer Ansatz ist die Option --max-depth.

du -h --max-depth=1 .

Listet alle Verzeichnisse und Dateien unter dem aktuellen Ordner mit der Größe auf.

Tiefe 2 würde eine weitere Ordnerebene auflisten.

12
matthias krull

Versuchen:

$ du -s ./f1

oder

$ du -sh ./f1

für freundlicher lesbare Größen.

5
Doug Harris

Aufbauend auf der akzeptierten Antwort werden mit diesem Befehl die Größen der Ordner im Verzeichnis angezeigt. Mit und werden sie auch nach Größe aufgelistet, damit Sie sie leichter interpretieren können:

$ du -sh */ | sort -rn
2
Ethan

Erwähnenswert ist der Befehl NCurses Disk Usage Shell.

Ncdu ist ein Datenträgerverwendungsanalysator mit einer ncurses-Schnittstelle. Es wurde entwickelt, um Space Hogs auf einem Remote-Server zu finden, auf dem keine vollständige grafische Konfiguration verfügbar ist. Es ist jedoch ein nützliches Tool, selbst auf normalen Desktop-Systemen. Ncdu soll schnell, einfach und benutzerfreundlich sein und in jeder POSIX-ähnlichen Minimalumgebung mit installierten ncurses ausgeführt werden können.

2
Ray

$ du --max-depth=1 /var/www/ | sort -n -r

2
Andre Mesquita

Hier ist ein POSIX-Skript, mit dem Folgendes funktioniert:

  • Eine Datei
  • Dateien
  • Ein Verzeichnis
  • Verzeichnisse
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

Quelle

0
Steven Penny

Auf einem Mac können Sie die GNU (Linux) -Implementierung von du mit Homebrew (brew install coreutils) installieren. Dann zum Beispiel:

gdu folder -shL --exclude=.git

woher

  • gdu ist der Name, der der GNU Implementierung von du gegeben wurde (standardmäßig versteckt Homebrew den /usr/bin/du nicht);
  • s erzeugt eine Gesamtsumme für den angegebenen Ordner (weglassen, wenn Sie die Aufschlüsselung sehen möchten);
  • h gibt lesbare Größen aus;
  • L folgt symlinks;
  • --exclude=.git schließt das Git-Verzeichnis im angegebenen Ordner aus (dies ist nur ein Beispiel).

Sie können weitere Ordner ignorieren, indem Sie --exclude=blah hinzufügen. Sie können auch mehrere Ordner gleichzeitig angeben (z. B. gdu folder1 folder2 ...). In diesem Fall können Sie alle Zwischensummen mit der Option c zu einer Größe zusammenfassen.

0
Sheljohn