Das Problem ist, dass 'du' jedes Objekt im Unterbaum auflisten muss. Dies ist eine metadatenintensive Operation, die für die meisten Linux-Dateisysteme eine Weile dauert. Einige Dateisysteme, NTFS und Novells NSS, haben die Möglichkeit, Verzeichnisgrößen wie diese in den Metadaten zu verfolgen , was diesen Vorgang erheblich beschleunigt. Wenn Ihr Dateisystem Verzeichniskontingente unterstützt, muss es diese Daten zur Durchsetzung intern verfolgen. Jede Größenänderung wird im Verzeichnisbaum auf den Kontingentpunkt (NTFS) oder jedes Verzeichnis (NSS) repliziert ) Wenn es passiert, ist es sehr schnell, eine Verzeichnisbaumgröße zu erhalten.
Leider gibt es keine Möglichkeit, du schneller laufen zu lassen, nur Workarounds.
- Führen Sie 'du' im Batch-Modus aus und leben Sie mit nicht-Live-Ergebnissen
- Erstellen Sie ein neues Dateisystem und verwenden Sie stattdessen 'df'
- Erstellen Sie eine große Datei, die Ihr Verzeichnis enthält, mounten Sie es per Loopback, formatieren Sie es und verwenden Sie stattdessen 'df' für diesen neuen Mount-Punkt. Wenn Sie mehr Speicherplatz benötigen, heben Sie die Bereitstellung des Loopback-Mount auf, erweitern Sie die Datei und stellen Sie sie erneut bereit.
Gibt Ihnen die Größen im menschlichen KB / MB / GB-Format aus Ihrem aktuellen Arbeitsverzeichnis.
quelle
Mit den Standardwerkzeugen müssen Sie die Größe jeder Datei im Verzeichnis jedes Mal ermitteln, wenn Sie die Gesamtgröße ermitteln möchten. Ein möglicherweise effizienterer Weg wäre ein "Verzeichnisgrößenmonitor", der die aktuelle Größe des Verzeichnisses verfolgt. Es gibt keine solche Sache (von der ich weiß), aber Sie könnten eine mit implementieren
inotify
. Möglicherweise nicht mit bash (undinotify-tools
), aber Sie könnten wahrscheinlich zum Beispiel Python und Pyinotify verwenden.quelle
Sie könnten
gt5
nützlich sein. Er speichert die neuestendu
Informationen und macht einen diff gegen das das nächste Mal laufen gelassen. Es zeigt seine Ausgabe mit einem Textmodus-Browser wie zlinks
.quelle
Berücksichtigen Sie auch die Option -x auf du - "one file system", wenn Sie dies tun
Sie sehen nur die Zusammenfassung der Festplattennutzung auf Ihrer Root-Partition und es wird nicht versucht, / proc, / sys, / dev usw. zu addieren ...
quelle
Wenn Sie nur die Festplattennutzung für das Root-Dateisystem wünschen, dann
df -h /
quelle
Nein. Könnten Sie in einem Cron-Job, der über Nacht ausgeführt werden soll, in regelmäßigen Abständen ein Du-Piping an eine Textdatei durchführen, sodass Sie nicht sofort über aktuelle Daten verfügen?
Beachten Sie, dass das Messen des von einem Ordner verwendeten Speicherplatzes, der unter Windows eine große Anzahl von Dateien enthält, ebenfalls einige Zeit in Anspruch nimmt.
quelle
df -h wird den Trick machen
quelle
df -kh /
Dies zeigt Ihnen die Menge des verwendeten und verfügbaren Speicherplatzes.
quelle
Vielleicht
Zusätzlicher Text, da eine kurze, präzise Antwort nicht ausreicht, damit Serverfault mich für einen Menschen hält.
quelle
Um den Speicherplatz unter genau diesem Verzeichnis zu finden, listen Sie ihn stattdessen auf
/
. Um den Speicherplatz unter den Verzeichnissenfoo
und zu findenbar
, listen Sie beide auf:quelle
Sie sollten dnotify verwenden, um die Festplattennutzung zu berechnen, wenn das Dateisystem nicht häufig geändert wird.
quelle