Antworten:
Vielleicht -hreicht es Ihnen:
-h
Verwenden Sie bei Verwendung der Option -l die Einheitensuffixe: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte und Petabyte, um die Anzahl der Ziffern auf drei oder weniger zu reduzieren, wobei Basis 2 für die Größen verwendet wird.
ls -lah
Allgemeiner Hinweis: Hier können Sie man commandnamedas Handbuch / die Hilfe zu einem bestimmten Befehl lesen, z man ls. B. hier .
ls --block-size=Mdruckt die Größen in Megabyte, zeigt aber auch 1 MB für alles unter 1 MB. Ich bin mir nicht sicher, ob diese Option in Ihrer UNIX-Version von ls akzeptabel ist.
Eigentlich ls -lhdruckt auch Größen in Gigabytes , wenn die Datei groß genug ist (Na ja sowieso: auf Linux 64bit dies funktioniert:>)
Auf einem Nebenknoten: du -sh *Druckt auch Verzeichnisgrößen im aktuellen Verzeichnis.
ls -hist bedeutungslos, nachdem eine Datei while true ; do ls -al --block-size=M ; sleep 1 ; done
Sie müssen verwenden awk, um die Mathematik für Sie zu erledigen:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Dies wirkt sich nicht auf die Ausgabe von Dateien aus, die kleiner als sind mega.
Möglicherweise müssen Sie die Feldnummer so anpassen, dass sie mit Ihrer lsAnordnung übereinstimmt . Sie können megazu "1000000" wechseln , wenn dies Ihre Präferenz ist.
Dadurch werden mehr Dezimalstellen ausgegeben, als Sie wahrscheinlich möchten. Sie können eine Rundungsfunktion implementieren.
ls -lhoder ls --block-size=M, aber AWK ist sehr nützlich!
versuchen Sie es ls -shRmit einem rekursiven lesbaren Format.
-hauf Tru64 keine gibt , und zwar mehr als zwei Jahre, bevor diese Antwort veröffentlicht wurde.
Wenn Sie nur die Größe einer bestimmten Datei benötigen, lautet der Befehl, eine einfache Extrapolation der vorherigen Antworten, wie folgt:
ls -sh Dateiname (n)
-sist für Größe und hist für Menschen lesbar (wie oben einige Male erwähnt).
Die Ausgabe sieht folgendermaßen aus:
753M myfilename
Wenn Sie die Dateinamen weglassen, wird das Verzeichnis aufgelistet, wobei die Größe jeder Datei neben dem Namen steht - ähnlich ls -lawie beim Aufruf ohne Dateinamenargumente.
Hoffe das hilft.
-hbezieht sich auf Tru64 Unix, und das OP hat vor fast fünf Jahren festgestellt, dass die Option in lsdiesem System nicht vorhanden ist.
ls -l --block-size=MB
Für den --block-sizeParameter:
MBfür 10 ^ 6Mfür 2 ^ 201MB . Aus diesem Grund fand ich ls -l --block-size=kBnützlicher.
Wenn Sie nur an der Dateigröße interessiert sind und den lsBefehl nicht verwenden müssen , versuchen Sie Folgendes:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Dadurch wird die Dateigröße gedruckt, ohne dass eine Analyse durchgeführt werden muss.