ls-Befehl: Wie wird die Dateigröße in Megabyte angezeigt?

Wie kann ich unter Unix (Tru64) den Befehl ls dazu bringen, die Dateigröße in Megabyte anzuzeigen? Derzeit kann ich es in Bytes mit Folgendem anzeigen:

ls -la
Author: phuclv, 2010-09-20

10 answers

Vielleicht ist -h für Sie ausreichend:

-h
Verwenden Sie bei Verwendung mit der Option-l Einheitensuffixe: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte und Petabyte, um die anzahl der Ziffern bis drei oder weniger mit Basis 2 für Größen.

ls -lah

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

 268
Author: Felix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-12-19 14:17:36

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

Tatsächlich druckt ls -lh auch Größen in Gigabyte, wenn die Datei groß genug ist (naja sowieso: unter Linux 64bit funktioniert das:>)

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

 34
Author: Jan.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-20 12:33:13

Sie müssen awk verwenden, um die Mathematik für Sie zu tun:

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 mega sind.

Möglicherweise müssen Sie die Feldnummer so anpassen, dass sie der Anordnung Ihres ls entspricht. Sie können mega in "1000000" ändern, wenn dies Ihre Präferenz ist.

Dadurch werden mehr Dezimalstellen gedruckt, als Sie wahrscheinlich möchten. Sie könnten eine Rundungsfunktion implementieren.

 16
Author: Dennis Williamson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-05-04 19:44:57

Versuchen ls -shR rekursiven human-readable format.

 13
Author: Sorter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-10-14 08:27:30

Versuchen Sie es mit ls -lash, es werden Größen im lesbaren Format gedruckt

 9
Author: n0pe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-08-25 02:11:23

du -sm filename.txt

 5
Author: Ether,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-20 16:36:06

Sie können auch

du -sh ./*

Dadurch werden alle Ordner im aktuellen Verzeichnis mit einem für Menschen lesbaren Format aufgelistet, einschließlich der bekannteren Dateigrößen in Kb, Mb, Gb.

 5
Author: Keng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-19 23:27:10

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

ls -sh filename(s)

-s ist für Größe und die h ist für Menschen lesbar (wie oben ein paar Mal erwähnt).

Die Ausgabe sieht folgendermaßen aus:

753M myfilename

Wenn Sie die Dateinamen weglassen, listet es das Verzeichnis auf und platziert die Größe jeder Datei neben ihrem Namen - nicht anders als das, was ls -la tut, wenn es ohne Dateinamenargumente aufgerufen wird.

Hoffe dieser helps.

 2
Author: Rob Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-06-13 08:12:16
ls -l --block-size=MB 

Für den Parameter --block-size:

  • benutze MB für 10^6
  • benutze nur M für 2^20
 2
Author: Evan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-07-24 18:48:54

Wenn Sie nur an der Dateigröße interessiert sind und den Befehl ls 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 etwas analysiert werden muss.

 0
Author: SKN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-03-10 17:34:39