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

485436
phuclv

Wie kann ich unter Unix (Tru64) lsdie Dateigröße in Megabyte anzeigen lassen? Derzeit kann ich es in Bytes anzeigen, indem es Folgendes verwendet:

ls -la 
151

10 Antworten auf die Frage

229
Felix

Vielleicht -hreicht dir das aus:

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

ls -lah 

Allgemeiner Hinweis: man commandnameZum Lesen der Anleitung / Hilfe eines bestimmten Befehls, z man ls. B. hier .

Danke, aber die Option -h scheint auf Tru64 Unix nicht zu existieren. vor 14 Jahren 1
Allgemeine Hinweise: GNU-Dienstprogramme installieren ... reinierpost vor 14 Jahren 8
+1 für die Manpages (+5 wenn ich könnte!). Sie sind eine unbezahlbare Ressource, wenn Sie nicht wissen, wie Sie mit einem bestimmten Befehl etwas anfangen können. Kevin M vor 14 Jahren 0
Ich mag Ihren Tipp über die Verwendung von Man, aber die Suche bei Google ist so viel schneller als die Verwendung von Man (wie jetzt, als ich dieses Ergebnis bei Google gefunden habe). trusktr vor 11 Jahren 21
Googles Geldstrafe und alles für allgemeine Hinweise, aber letztendlich sind Manpages System / OS, sogar Host-spezifisch, die normalerweise erstellt werden, wenn die Software kompiliert oder installiert wird und somit für die Software in Ihrem System maßgebend ist. Nevin Williams vor 11 Jahren 4
Um den Kreis zu schließen, ist ein Mann für gnu / linux online: http://linux.die.net/man/ MariusMatutiae vor 11 Jahren 1
Können wir MBs als Standard festlegen? Omer vor 7 Jahren 0
"ls --help" hat normalerweise genug Informationen gegen "man ls" icc97 vor 6 Jahren 0
Gedächtnis: "h" steht für Menschen lesbar Miscreant vor 6 Jahren 0
32
Jan.

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

Tatsächlich werden ls -lhauch Größen in Gigabyte gedruckt, wenn die Datei groß genug ist (Nun, auf Linux 64bit geht das:>)

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

Vielen Dank! Ich musste Live-Dateiänderungen in einem Ordner überwachen, und die Verwendung von 'ls -h' ist bedeutungslos, wenn eine Datei über 1 GB ansteigt. Ich verwende diesen Befehl in einer 1-Sekunden-Schleife: `while true; do ls -al - Blockgröße = M; schlaf 1; fertig " ccpizza vor 8 Jahren 0
15
Dennis Williamson

Sie awkmüssen die Berechnungen für Sie durchführen:

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

Dies wirkt sich nicht auf die Ausgabe für Dateien aus, die kleiner als sind mega.

Möglicherweise müssen Sie die Feldnummer an Ihre Layouts anpassen ls. Sie können megazu "1000000" wechseln, wenn Sie dies bevorzugen.

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

Viel weniger elegant als 'ls -lh' oder 'ls --block-size = M', aber AWK ist sehr nützlich! Statwonk vor 10 Jahren 3
Genau das, was ich brauchte. Alle anderen Lösungen werden auf das nächste MB gerundet, dies zeigt jedoch einige Dezimalstellen und ist leicht anpassbar. zeroimpl vor 10 Jahren 0
Dies ist eine gute Lösung für Systeme (AIX - ich schaue Sie an), die nicht die Option -h haben. Buggabill vor 9 Jahren 2
14
Sorter

try ls -shR for recursive human readable format.

[OP hat angegeben, dass es bei Tru64 kein "-h" gibt] (http://superuser.com/questions/190653/ls-command-how-to-print-file-size-in-megabytes#comment193423_190654) und Über zwei Jahre, bevor diese Antwort veröffentlicht wurde. a CVn vor 11 Jahren 4
Denken Es ist meine Aufgabe, denjenigen zu helfen, die mit derselben Google-Suche hierher gelangen. Sorter vor 7 Jahren 2
6
n0pe

Versuchen Sie ls -lash, es druckt Größen in einem für Menschen lesbaren Format

5
Ether

du -sm filename.txt

Es wird immer die Größe aufgerundet ... wenn die Größe weniger als 1 MB beträgt, sagen Sie 500 KB, dann wird auch 1 MB gedruckt AnonGeek vor 12 Jahren 1
5
Keng

Sie können auch eingeben

du -sh ./* 

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

2
Rob Jones

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

ls -sh Dateiname (n)

-ssteht für Größe und hist für Menschen lesbar (wie oben ein paar Mal erwähnt).

Die Ausgabe sieht folgendermaßen aus:

753M myfilename 

Wenn Sie die Dateinamen weglassen, wird das Verzeichnis aufgelistet, und die Größe jeder Datei wird neben ihrem Namen ls -laangezeigt - nicht anders als bei einem Aufruf ohne Dateinamenargumente.

Hoffe das hilft.

Bei dieser Frage geht es um Tru64 Unix, und das OP erklärte vor fast fünf Jahren, dass die Option "-h" in "ls" auf diesem System nicht vorhanden ist. G-Man vor 9 Jahren 2
0
Evan
ls -l --block-size=MB 

Für den --block-sizeParameter:

  • Gebrauch MBfür 10 ^ 6
  • nur Mfür 2 ^ 20 verwenden
Beachten Sie, dass dies ** keine Nachkommastellen ** anzeigt. ** Alles über 0 kB, jedoch nicht größer als 1 MB, wird als "1 MB" ** angezeigt. Aus diesem Grund fand ich ls -l -block-size = kB nützlicher. DaAwesomeP vor 9 Jahren 0
0
SKN

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 etwas analysiert werden muss.

OP will Größe in MB, vielleicht erzeugt eine stat-Option eine Größe in für Menschen lesbarer Form? Archemar vor 8 Jahren 0
Ah, das war dumm von mir. Danke, dass du das gefangen hast. stat hat keine Möglichkeit, die Größe mithilfe von --printf oder einer anderen Option zu ändern, soweit ich weiß. Es ist wahrscheinlich erforderlich, eine Kombination der Befehlszeilenprogramme printf und bc zu verwenden. In welchem ​​Fall, warum die Mühe machen. ls und cut / awk wären schneller. SKN vor 8 Jahren 0