2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

ls-Befehl: Wie zeige ich die Dateigröße in Megabyte an?

Wie bringe ich unter Unix (Tru64) den Befehl ls dazu, die Dateigröße in Megabyte anzuzeigen? Derzeit kann ich sie in Bytes anzeigen, indem ich Folgendes verwende:

ls -la

Antworten (9)

250
250
250
2010-09-20 11:22:20 +0000

Vielleicht ist -h für Sie ausreichend:

-h Bei Verwendung der Option -l verwenden Sie Einheitssuffixe: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte und Petabyte, um die Anzahl der Ziffern auf drei oder weniger zu reduzieren, wobei für die Größen die Basis 2 zu verwenden ist.

ls -lah

Allgemeine Hinweise: Verwenden Sie man commandname, um das Handbuch/Hilfe zu einem bestimmten Befehl zu lesen, z.B. hier man ls.

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M druckt die Größenangaben in Megabyte, zeigt aber 1MB auch für alles unter 1 MB an. Ich bin mir allerdings nicht sicher, ob diese Option in Ihrer UNIX-Version von ls akzeptabel ist.

Tatsächlich druckt ls -lh auch Größen in Gigabytes, wenn die Datei groß genug ist (Nun ja, wie auch immer: unter Linux 64bit funktioniert das :>)

Auf einem Nebenknoten: du -sh * druckt auch Verzeichnisgrößen im aktuellen Verzeichnis.

15
15
15
2010-09-20 13:36:26 +0000

Sie müssen mit awk rechnen:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

Dies hat keinen Einfluss auf die Ausgabe für Dateien, die kleiner als mega sind.

Möglicherweise müssen Sie die Feldnummer anpassen, damit sie mit dem Layout Ihrer ls übereinstimmt. Sie können mega in “1000000” ändern, wenn Sie dies bevorzugen.

Dies wird mehr Dezimalstellen ausgeben, als Sie wahrscheinlich wünschen. Sie könnten eine Rundungsfunktion implementieren.

13
13
13
2012-10-14 08:27:30 +0000

versuchen Sie ls -shR für rekursives, von Menschen lesbares Format.

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

Sie können auch

du -sh ./*

&001

eingeben. Dies listet alle Ordner im aktuellen Verzeichnis in menschenlesbarem Format auf, einschließlich der bekannteren Dateigrößen in Kb, Mb, Gb.

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Für den Parameter --block-size:

  • verwenden Sie MB für 10^6
  • verwenden Sie nur M für 2^20
2
2
2
2015-06-13 07:36:58 +0000

Wenn Sie nur die Größe einer bestimmten Datei wollen, dann lautet der Befehl, eine triviale Extrapolation der vorherigen Antworten:

ls -sh _filename(s)_

-s steht für Größe und h für Human Readable (wie bereits einige Male erwähnt).

Die Ausgabe wird so aussehen:

753M myfilename

Wenn Sie den/die Dateinamen weglassen, wird das Verzeichnis aufgelistet, wobei die Größe jeder Datei neben ihrem Namen steht - nicht unähnlich dem, was ls -la tut, wenn es ohne Dateinamen-Argumente aufgerufen wird.

Hoffentlich hilft das.

0
0
0
2016-03-10 17:34:39 +0000

Wenn Sie nur an der Dateigröße interessiert sind und nicht den Befehl ls 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

Dies gibt die Dateigröße aus, ohne dass Sie etwas parsen müssen.