So extrahieren Sie die Dateigröße mit du

So extrahieren Sie die Dateigröße mit du

duUm die Dateigröße des Ergebnisarchivs abzurufen, verwende ich ein Packager-Skript:

> du -smh archive.zip
51M    archive.zip

Ich möchte nur den 51MTeil einer Variablen zuweisen, um drucken zu können:

Archive size: 51M

Wie kann ich das machen?

Antwort1

Sie können es so machen:

$ variable=$(du -smh archive.zip | awk '{print $1}')

Einzelheiten

awkanalysiert die Ausgabe und teilt sie in Spalten auf. Sie möchten nur die Ergebnisse aus Spalte 1. Der Code $( .. ) führt einen Befehl aus und gibt dessen Ergebnisse zurück.

Antwort2

Oder verwenden Sie das statProgramm, falls es verfügbar ist (normalerweise standardmäßig unter Linux). Keine menschenlesbare K/M/G-Konvertierung, aber es erfordert auch nichts anderes, um nur die Zahl zu erhalten / hat nette Formatierungsoptionen:

sauer@humpy:~$ stat -c "%s" /etc/passwd
2302
sauer@humpy:~$ stat -c "%n size: %s bytes" /etc/passwd /etc/shadow
/etc/passwd size: 2302 bytes
/etc/shadow size: 1389 bytes

Antwort3

Awk ist ein größerer Hammer als du brauchst, benutze ein Messer und schneide,

variable=$(du -smh archive.zip | cut -f1 )

verwandte Informationen