Antworten:
Vielleicht -h
reicht 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 commandname
das Handbuch / die Hilfe zu einem bestimmten Befehl lesen, z man ls
. B. hier .
ls --block-size=M
druckt 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 -lh
druckt 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 -h
ist 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 ls
Anordnung übereinstimmt . Sie können mega
zu "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 -lh
oder ls --block-size=M
, aber AWK ist sehr nützlich!
versuchen Sie es ls -shR
mit einem rekursiven lesbaren Format.
-h
auf 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)
-s
ist für Größe und h
ist 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 -la
wie beim Aufruf ohne Dateinamenargumente.
Hoffe das hilft.
-h
bezieht sich auf Tru64 Unix, und das OP hat vor fast fünf Jahren festgestellt, dass die Option in ls
diesem System nicht vorhanden ist.
ls -l --block-size=MB
Für den --block-size
Parameter:
MB
für 10 ^ 6M
für 2 ^ 201MB
. Aus diesem Grund fand ich ls -l --block-size=kB
nützlicher.
Wenn Sie nur an der Dateigröße interessiert sind und den ls
Befehl 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.