2012-04-02 1 views
4

Ich möchte wissen, wie Sie die Gesamtgröße der geänderten Dateien in den letzten 30 Tagen erhalten.Unix-Befehlszeile: So erhalten Sie die Gesamtgröße der geänderten Dateien in den letzten 30 Tagen

Ich habe diesen Befehl gefunden, wer nur mir die Liste der geänderten Dateien in den letzten 30 Tagen geben.

find . -name '*' -mtime -30 

Es ist nützlich, aber ich möchte die Gesamtgröße dieser Liste wissen.

Kann jemand helfen, bitte durchkommen?

+0

Ich habe markiert diese Frage zu Super User zu bewegen, der Stapelaustausch Seite, wo Sie sind mehr (die meisten?) Wahrscheinlich Hilfe bei dieser Frage zu bekommen. –

+0

@ Li-aungYip Definitiv nicht. Der richtige wäre: http://unix.stackexchange.com –

+0

@Let_Me_Be: Ich bevorzuge Super User - es ist aktiver. Aber es scheint, dass SO auf diese Frage trotzdem reagiert hat, also egal. ;) –

Antwort

6

Vielleicht wäre dies tun:

find . -mtime -30 -exec ls -l {} \;| awk '{s+=$5} END {print "Total SIZE: " s}' 
+0

Was ist der Sinn von '-name' * ''? – Jens

+0

Nichts so wie immer. Nur eine Kopie n einfügen Fehler von der ursprünglichen Anweisung. Ich habe es aus dem Beispiel entfernt. Gut gesichtet Jens! –

0

du die Größe der einzelnen Dateien, indem Fund Ausgabe tun könnte, dann total them up with awk

find . -name '*' -mtime -30 -printf '%s\n' | awk '{s+=$1} END {print s}' 
0

Versuchen Sie die Ausgabe Ihres Arbeitsbefehl an du finden kochend um zu sehen, ob die Ausgabe zufriedenstellend ist. Sie können die du Schalter -c verwenden, um insgesamt und optional , um es lesbar zu machen.

zB:

<your command> | du -c 

wird:

find . -name '*' -mtime -30 | du -c 

Wenn Sie nur die Gesamtleitung wollen:

find . -name '*' -mtime -30 | du -c | grep "total" 

Erzeugt eine Ausgabe:

360  total 

und mit du -ch produziert:

360K total