Welche Befehle benötige ich, damit Linux ls
die Dateigröße in MB anzeigt?
Welche Befehle benötige ich, damit Linux ls
die Dateigröße in MB anzeigt?
Antworten:
ls -l --block-size=M
Sie erhalten eine Auflistung im Langformat (erforderlich, um die Dateigröße tatsächlich zu sehen) und die Dateigrößen werden auf die nächste MB gerundet .
Verwenden Sie --block-size=MB
stattdessen MB (10 ^ 6 Byte) und nicht MiB (2 ^ 20 Byte) .
Wenn Sie nicht möchten, dass das M
Suffix an die Dateigröße angehängt wird, können Sie so etwas wie verwenden --block-size=1M
. Vielen Dank an Stéphane Chazelas für diesen Vorschlag.
Wenn Sie einfach Dateigrößen in "angemessenen" Einheiten anstatt spezifisch Megabyte wünschen , können -lh
Sie eine Auflistung im Langformat und eine von Menschen lesbare Dateigrößenpräsentation erstellen. Diese Einheiten Dateigröße verwenden , um mit etwa 1-3 Ziffern einzuprägen Dateigrößen zu halten (so werden Sie Dateigrößen wie sehen 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
und so weiter.
Der --block-size
Parameter ist in der Manpage für ls beschrieben. man ls
und suche nach SIZE
. Es erlaubt auch andere Einheiten als MB / MiB und, wie es aussieht (das habe ich nicht ausprobiert), auch beliebige Blockgrößen (so dass Sie die Dateigröße als eine Anzahl von 429-Byte-Blöcken sehen können, wenn Sie möchten) zu).
Beachten Sie, dass beides --block-size
und -h
GNU-Erweiterungen neben der Open Group sindls
, sodass dies möglicherweise nicht funktioniert, wenn Sie kein GNU-Benutzerland haben (was die meisten Linux-Installationen tun). Das ls
von GNU Coreutils 8.5 unterstützte --block-size und -h wie oben beschrieben. Vielen Dank an Kojiro für den Hinweis.
ls
? Standardls
hat kein solches Argument. Mit der xsi-Erweiterung ls
hat das -s
Flag, das es die Anzahl der Blöcke melden lässt, aber es gibt kein Standard-Flag --block-size
.
--block-size
ab Coreutils 8.5 das, was auf meinem Debian Squeeze-System installiert ist. Da die Frage ausdrücklich für Linux war und nichts anderes spezifizierte, werde ich zugeben, dass ich ein Userland angenommen habe, das sich um GNU-Coreutils dreht. Ich habe die Antwort aktualisiert, um dies zu klären. (Außerdem scheint Open Group ls auch kein -h zu haben. :)
)
--block-size
handelt es sich um eine GNU-Erweiterung. Ich vermute, dass Mac OS X GNU nicht verwendet ls
.
ls -lh
gibt lesbare Dateigrößen, langes Format.
Je nach Bedarf werden die Suffixe k, M, G und T (oder kein Suffix für Bytes) verwendet, damit die Anzahl klein bleibt, z . B. 1.4K
oder 178M
.
-h
ist eine GNU-Coreutils-Erweiterung, nicht POSIX.
Beachten Sie, dass hierdurch die Frage nicht genau so beantwortet wird, wie sie gestellt wurde. Wenn Sie auch für kleine oder riesige Dateien nur MiB-Größen benötigen, gilt dies für GNU coreutils von Michael Kjörlingls
.
h
--block-size=M
ls -l
überhaupt wenn nicht Menschen? : p
ls -l
Ausgabe ist in 99% der Fälle die falsche Vorgehensweise. unix.stackexchange.com/questions/128985/why-not-parse-ls . Diese 1% sind großzügig und so gut wie auf Einzeiler beschränkt, die Sie zur einmaligen Verwendung interaktiv schreiben, und nicht auf ein Skript, das Sie wiederholt für unbekannte Dateinamen verwenden werden.
ls -lhS
Nach Größe sortieren, in lesbarem Format
ls -lh
Antwort finden Sie Gründe, warum dies die Frage nicht wirklich beantwortet.
Und dies ist die Option, um alles in einer Verzeichnisreihenfolge nach Dateigröße (immer noch lesbar) aufsteigend aufzulisten.
ls -lSrh
--block-size=M
Lassen Sie einM
Suffix neben der Größe anzeigen und lassen Sie--block-size=1M
es weg. Es kann auch erwähnenswert sein, dass Sie dafür GNU ls benötigen (die meisten nicht eingebetteten Linux-Systeme werden GNU ls haben).