Gesamte Festplattennutzung für einen bestimmten Benutzer

42448
Alex

Ich möchte gerne die gesamte Festplattennutzung in einem bestimmten Dateisystem sehen. Ich habe den Befehl ausgeführt

du -h ~my_user_name 

Dies listet jedoch jedes Verzeichnis auf, das Eigentümer von ist my_user_name. Ich möchte die Summe aller Informationen erhalten. Was ist die geeignete Option zum Bestehen? Ich habe es versucht

du -h -c ~my_user_name 

aber das hat nicht funktioniert.

8

2 Antworten auf die Frage

10
Ignacio Vazquez-Abrams

Wenn Sie -san übergeben, duwird die Ausgabe auf die in der Befehlszeile angegebenen Elemente beschränkt.

du -sh ~ 
8
Hennes

Sie werden nur die Summen pro Ordner und nicht pro Benutzer anzeigen.

Das kann funktionieren, wenn Sie beispielsweise die Gesamtgröße von / home / example_user / wünschen und wenn nur dieser example_user Dateien in diesem Ordner hat. Wenn andere Benutzer Dateien enthalten, ergibt dies nicht die Größe aller Dateien, die Ihnen gehören, sondern die Gesamtgröße aller Dateien in diesem Ordner.

Um die Informationen pro Benutzer zu erhalten, entweder:

  1. Wenn Sie Quota aktiviert haben, verwenden Sie diese Befehle.
  2. Verwenden Sie find, um durch alle Verzeichnisse zu navigieren, in denen Sie Ihre Dateien zählen möchten. Verwenden Sie die UID, um nur Ihre Dateien auszuwählen, und behalten Sie ein assoziatives Array in awk, um die Gesamtzahlen zu zählen.

find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk 'END'

Beachten Sie, dass dies eine GNU-Suchspezifische Erweiterung verwendet.

  • Der erste Befehl durchsucht alle Dateien und Verzeichnisse in / path / to / search.
  • -type fstellt sicher, dass Sie nur Dateien auswählen, andernfalls zählen Sie auch die Größe der Verzeichnisse. (Versuchen Sie, einen leeren Ordner zu erstellen. Es wird wahrscheinlich 4k Speicherplatz beanspruchen).
  • -user username_whos_files_to_count wählt nur die Ergebnisse eines Benutzers aus
  • -printf "%s\n" wird die Größe drucken.

Wenn Sie nur den ersten Teil davon ausführen, erhalten Sie eine Liste mit Nummern. Das sind die Dateigrößen. (Alles andere wird entfernt, nur die Größe wird dank des% s-Druckbefehls gedruckt.)

Wir können dann alle diese Zahlen hinzufügen, um eine Zusammenfassung zu erhalten. Im Beispiel ist dies mit awk nicht möglich.

+1 guter Punkt, danke! Die Antwort unten war eigentlich genau das, was ich wollte. Die Benutzer / Ordner-Unterscheidung spielt in meinem Fall keine große Rolle Alex vor 10 Jahren 0
Nett. `du -sch` ist ein einfacher Befehl, der häufig verwendet wird. Es ist viel schwieriger, herauszufinden, wem was gehörte, wenn die Dinge gemischt wurden, obwohl dies auch als One Liner möglich ist. Ich habe es einmal benutzt, aber ich hatte heute Schwierigkeiten, es wieder aufzubauen. Hennes vor 10 Jahren 0
Hat mir sehr geholfen, perfekte Erklärung Babin Lonston vor 10 Jahren 0