Ich möchte die Menge des von einem Verzeichnis belegten Speicherplatzes mit dem folgenden Befehl abschätzen.
du -sh dir_name
das berechnet die versteckten Verzeichnisse nicht. In der Manpage von du gibt es keine Infos dazu. Berechnen des von den Verzeichnissen verwendeten Speicherplatzes, einschließlich der versteckten Dateien.
... you maybe using "du *" ?
Dieser Befehl zeigt Ihnen die zusammengefasste Größe der versteckten Verzeichnisse
du -hs .[^.]*
quelle
Der richtige Befehl lautet:
du -hs $(ls -A)
du -hs .* *
Wie in einer anderen Antwort erwähnt, ist dies nicht der Fall, wenn Sie alle Dateien und Unterverzeichnisse (einschließlich der versteckten) auflisten möchten.Beispiel
Warum verhält es
du
sich so? Da Sie verwenden-s
, die das Ergebnis zusammenfassen und dass alle Dateien und Unterverzeichnisse untergeordnet sind.
, werdendu -hs
sie nicht aufgelistet!quelle
Zu Ihrer Information , um die Größe zu schätzen, die von verschiedenen Verzeichnissen belegt wird, ist es viel besser, ncdu zu verwenden
Sie können in der ncurses-Benutzeroberfläche zwischen verschiedenen Verzeichnissen navigieren und die Größe der einzelnen Verzeichnisse anzeigen. Wenn ich du verwende, muss ich den Befehl du für jedes Verzeichnis ausführen, für das ich eine Prüfung durchführen möchte, was umständlich sein kann. Sie können die Verzeichnisse auch in der GUI von ncurses nach der belegten Größe sortieren.
quelle
du
. Abgesehen von einer schickeren Anzeigemethode gibt es keinen offensichtlichen Hinweis auf einen Funktionsunterschied.d
Möglichkeit, Verzeichnisse zu löschen, sodass Sie direkt von der Benutzeroberfläche aus bereinigen können.Es tut und tut es nicht. Beispiel:
Im Home-Verzeichnis: (nur ein Benutzer vorhanden)
im Benutzerverzeichnis: (großer Unterschied zwischen den Summen)
und der Grund ist:
du
berechnet ausgeblendete Verzeichnisse beim Abstieg in Unterverzeichnisse, aber im aktuellen Verzeichnis stimmt das * einfach nicht mit dem .directory_name-Muster überein, sodass die verborgenen Elemente des aktuellen Verzeichnisses weggelassen werden.Ich brauchte einige Zeit, um herauszufinden, und wie Shadyabhi empfiehlt, wäre es offensichtlich gewesen, wenn ich ncdu verwendet hätte.
quelle
Der richtige Befehl lautet:
du -hs .* *
quelle
find -maxdepth 1 -exec du -sh "{}" \; | sort -h
Dies gibt Ihnen:
Außerdem wird die Ausgabe sortiert, um die Anzeige der größten Ausgabe zu vereinfachen. Ich habe dies auch zu einem Alias in meiner
~/.bash_aliases
Datei gemacht.Jetzt kann ich einfach ausführen
big
, um die größten Verzeichnisse in einem Verzeichnis zu finden, undsbig
wenn ich Sudo-Berechtigungen benötige.quelle
Es folgt die Beschreibung der
-d
Option indu --help
:quelle
Mit diesem Befehl können Sie überprüfen, ob die Festplatte im Verzeichnis verwendet wird, und Folgendes ausführen.
"du -sch. [!.] * * | sort -h"
Hier ist die Demo zur Berechnung der Festplattennutzung eines bestimmten Verzeichnisses. Ich habe ein Verzeichnis mit dem Namen Du_sh erstellt und darin zwei Dateien (eine versteckte 10 MB und normale 20 MB) erstellt.
nikhil@debian:~$ mkdir Du_sh nikhil@debian:~$ cd Du_sh/ nikhil@debian:~/Du_sh$ dd if=/dev/zero of=.10MB bs=1024 count=10240 10240+0 records in 10240+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0299941 s, 350 MB/s nikhil@debian:~/Du_sh$ nikhil@debian:~/Du_sh$ dd if=/dev/zero of=20MB bs=2048 count=10240 10240+0 records in 10240+0 records out 20971520 bytes (21 MB, 20 MiB) copied, 0.0342258 s, 613 MB/s nikhil@debian:~/Du_sh$ du -sch .[!.]* * 10M .10MB 20M 20MB 30M total nikhil@debian:~/Du_sh$ du -sch .[!.]* * | sort -h 10M .10MB 20M 20MB 30M total nikhil@debian:~/Du_sh$
quelle