Übergeben von -s
bis du
schränkt die Ausgabe auf die in der Befehlszeile angegebenen Elemente ein.
du -sh ~
Du wirst dir nur die Summen pro Ordner anzeigen, nicht pro Benutzer.
Das könnte funktionieren, wenn Sie die Gesamtgröße von beispielsweise /home/example_user/
möchten und wenn nur dieser example_user Dateien in diesem Ordner hat. Wenn andere Benutzer Dateien in sich haben, 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:
- Wenn Sie Kontingente aktiviert haben, verwenden Sie diese Befehle.
- Verwenden Sie find, um durch alle Verzeichnisse zu gehen, 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 Gesamtsummen zu zählen.
find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'
- Der erste Befehl durchsucht alle Dateien und Verzeichnisse in
/path/to/search/
. -type f
stellt sicher, dass Sie nur Dateien auswählen, andernfalls zählen Sie auch die Größe von Verzeichnissen. (Versuchen Sie, einen leeren Ordner zu erstellen. Es wird wahrscheinlich 4k Speicherplatz beanspruchen).-user username_whos_files_to_count
wählt nur die Ergebnisse von einem Nutzer aus-printf "%s\n"
druckt die Größe.
Wenn Sie nur den ersten Teil davon ausführen, erhalten Sie eine Liste mit Zahlen. Das sind die Dateigrößen. (Alles andere wird entfernt, nur die Größe wird dank des Druckbefehls %s gedruckt.)
Wir können dann all diese Zahlen addieren, um eine Zusammenfassung zu erhalten. Im Beispiel geschieht dies mit awk.
Um die gesamte Verwendung durch einen bestimmten Benutzer zu finden, ist ein guter Befehl:
find -user $USER -type f -exec du -chs {} +
Sie können je nach Bedarf weiter modifizieren, zum Beispiel möchte ich oft die Verwendung nach Ordner zusammenfassen, und das Folgende funktioniert gut:
find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +
Dies findet nur Verzeichnisse auf einer Ebene, schränkt nach Benutzer ein, schließt das übergeordnete Verzeichnis aus und gibt jedes Verzeichnis und eine Zusammenfassung am Ende aus.