Gibt es eine Möglichkeit, schnell eine genaue Größe für ein Verzeichnis zu erhalten (einschließlich rekursiv aller Unterverzeichnisse)? Ich möchte nicht die Größe der Unterverzeichnisse, ich meine nur, dass sie rekursiv in die gemeldete Gesamtgröße einbezogen werden sollten.
Gelingt dies nicht, um eine ungefähre Größe zu erhalten? Ich denke, etwas in df
dieser Richtung führt zu einer schnellen Antwort für das gesamte Dateisystem, diesmal jedoch für ein bestimmtes Verzeichnis (und seine Unterverzeichnisse).
Lösungen, die verwendet werden, du
scheinen ewig zu dauern, wenn ein Verzeichnis Tausende von Unterverzeichnissen enthält.
du
ist die einzige Methode, die mir bekannt ist. Das Problem ist, dass die Daten über die gesamte Hierarchie verteilt sind, sodass sie von einem Tool erfasst werden müssen, um die Anzahl zu ermitteln.Antworten:
Ich finde das sehr nützlich.
oder um eine Aufschlüsselung der internen Verzeichnisse zu erhalten
und dann mit einer Sorte, wenn es viele Unterverzeichnisse gibt
Der Grund, warum ich die Option -m verwende, besteht darin, sicherzustellen, dass ich eine Megabyte-Ausgabe erhalte. Ich finde, dass dies für mich einfacher visuell zu vergleichen ist (wenn ich keine Mischung von Einheiten erhalte, z. B. 999 KB und 1 MB mit 999000 MB und 1000000 MB vergleichen), besteht der zusätzliche Vorteil darin, dass Sie die Ausgabe in Sortierung übergeben können.
Stellen Sie alles in den Hintergrund und leiten Sie die Ausgabe um. Es wird einige Zeit dauern, egal welche Methode Sie verwenden. Es ist eine Durchquerung vieler Dateien, die Zeit in Anspruch nehmen wird.
Beachten Sie die umgekehrte Sortierung, damit die großen am Anfang stehen. Fügen Sie dies hinzu, um alle n Minuten einen Cron-Lauf durchzuführen.
Mit einem Alias-Ducache haben Sie dann eine ziemlich aktuelle Verzeichnisverwendung.
quelle
shopt -s dotglob
, sonstdu -sm Directory/*
werden versteckte Dateien / Verzeichnisse nicht gezählt.gibt Ihnen eine Zusammenfassung der Gesamtgröße in "menschlich" formatierten Ausgaben.
Da Sie nach einer Alternative gesucht haben
du
, habe ich es versuchtfind
, aber es ist genau das gleiche:quelle
du
dauert viel zu lange, da es ein genaues Ergebnis liefert. Ich hatte auf ein Tool / einen Befehl gehofft, der eine schnelle und schmutzige ungefähre Antwort liefert.df
aber das funktioniert auf dem gesamten Dateisystem.Meine Antwort mag Ihnen vielleicht nicht gefallen, aber ich denke, der beste Weg, das zu tun, was Sie wollen, besteht darin, die "du -s" regelmäßig mit cron im Hintergrund auszuführen und das Ergebnis in einer Datei zu speichern. Wenn Sie dann einen ungefähren Wert wünschen, verwenden Sie den Wert aus der Datei. Sie können entscheiden, wie oft Sie das du ausführen möchten. Ich sehe keinen schnelleren Weg, um den Wert zu erhalten. Der Befehl du ist effizient für das, was er tut.
Die einzige andere Möglichkeit, dies sehr schnell zu tun, besteht darin, ein Dateisystem für das Verzeichnis zu erstellen. Dann erhalten Sie von df sehr schnell die gewünschte Antwort.
Wenn es schneller ist, alles im Dateisystem außer Ihrem Verzeichnis zu kennen, können Sie df für das Dateisystem ausführen, für alles andere als Ihr Verzeichnis und subtrahieren.
quelle
Es entspricht nicht genau Ihren Anforderungen (kein einzeiliger Druck), ist aber einfacher als andere Lösungen:
Dieser Befehl gibt Ihnen die Größe des Verzeichnisses und des Unterverzeichnisses sowie die Größe der größten Datei oder des größten Unterverzeichnisses im aktuellen Verzeichnis an.
PS: Das
head -2
ist für den Fall, dass ein Unterverzeichnis den gesamten Platz des aktuellen Verzeichnisses einnimmt und vor dem aktuellen abgehört wird.quelle