Welche Befehle benötige ich, damit Linux lsdie Dateigröße in MB anzeigt?
Welche Befehle benötige ich, damit Linux lsdie Dateigröße in MB anzeigt?
Antworten:
ls -l --block-size=MSie 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=MBstattdessen MB (10 ^ 6 Byte) und nicht MiB (2 ^ 20 Byte) .
Wenn Sie nicht möchten, dass das MSuffix 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 -lhSie 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.5Gund so weiter.
Der --block-sizeParameter ist in der Manpage für ls beschrieben. man lsund 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-sizeund -hGNU-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 lsvon 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 -sFlag, das es die Anzahl der Blöcke melden lässt, aber es gibt kein Standard-Flag --block-size.
--block-sizeab 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-sizehandelt 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.4Koder 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 -lAusgabe 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 -lhAntwort 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=MLassen Sie einMSuffix neben der Größe anzeigen und lassen Sie--block-size=1Mes 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).