Wie wird die Festplattennutzung nach Dateityp angezeigt?

9

Grundsätzlich frage ich mich, wo mein gesamter Speicherplatz auf meinem Laufwerk verbraucht ist, und ich möchte nach Dateityp analysieren können

Ich möchte beispielsweise das Terminal verwenden, um zu sehen, wie viel Speicherplatz von den .psdDateien auf meinem Laufwerk belegt wird.

Gibt es eine Möglichkeit, so etwas zu tun?

Pete
quelle

Antworten:

12

Versuche dies:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' findet alle Dateien, die mit einer Erweiterung von enden psd
  • -print0 Gibt die Dateinamen gefolgt von einem Nullzeichen anstelle einer neuen Zeile aus
  • | du -ch --files0-from=-Nimmt die Dateinamen von findund berechnet die Festplattennutzung. Die Optionen sagen du:
    • Berechnen Sie die Datenträgerverwendung von Dateinamen, die durch ein Nullzeichen von stdin ( --files0-from=-) getrennt sind.
    • Druckgrößen in einem für Menschen lesbaren Format ( -h) und
    • drucke am Ende eine Summe aus ( -c).

Wechseln Sie .psdzu dem Dateityp, für den Sie die Datenträgerverwendung ermitteln möchten.

Alaa Ali
quelle
Wie sortiere ich die Ausgabe nach Größe?
ulkas
0

Allgemeiner können Sie eine Kombination aus findund verwenden awk, um die Gruppierung der Datenträgerverwendung nach einer beliebigen Regel zu melden. Hier ist ein Befehl, der nach Dateierweiterungen gruppiert wird (was auch immer nach dem letzten Zeitraum angezeigt wird):

# output pairs in the format: `filename size`.
# I used `nawk` because it's faster.
find -type f -printf '%f %s\n' | nawk '
  {
    split($1, a, ".");       # first token is filename
    ext = a[length(a)];      # only take the extension part of the filename
    size = $2;               # second token is file size
    total_size[ext] += size; # sum file sizes by extension
  }
  END {
    # print sums
    for (ext in total_size) {
      print ext, total_size[ext];
    }
  }'

Würde so etwas produzieren

wav 78167606
psd 285955905
txt 13160
Yuval
quelle
-1

Ja du kannst. Die Syntax für die Suche nach Dateien im Terminal lautet:

Syntax   :   find foldername -iname '.filetype' -size size 

Example  :   find $HOME -iname '*.mp3' -size +1M

Für Ihr Szenario muss es so sein

find $HOME -iname '*.psd' -size +0M

Weitere Informationen finden Sie im offiziellen Dokument hier .

PAC
quelle
Ja, aber dies druckt nur die Dateinamen, die + 0M sind, und sagt mir nicht, wie groß sie sind.
Alaa Ali
Ja, ich habe deine Antwort perfekt gesehen!
PAC