-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