du
Um die Dateigröße des Ergebnisarchivs abzurufen, verwende ich ein Packager-Skript:
> du -smh archive.zip
51M archive.zip
Ich möchte nur den 51M
Teil 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
awk
analysiert 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 stat
Programm, 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 )