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


In Unix (Tru64), wie mache ich den Befehl ls zeigen die Dateigröße in Megabyte? Momentan kann ich es in Bytes mit dem folgenden zeigen:

ls -la


148
2017-09-20 11:20


Ursprung




Antworten:


Könnte sein -h ist genug für dich:

-h
  Wenn Sie die Option -l verwenden, verwenden Sie Einheiten-Suffixe: Byte, Kilobyte,               Megabyte, Gigabyte, Terabyte und Petabyte, um die               Anzahl der Stellen auf drei oder weniger unter Verwendung der Basis 2 für Größen.

ls -lah

Allgemeiner Hinweis: Verwenden man commandname um das Handbuch / die Hilfe eines bestimmten Befehls zu lesen, z. Hier man ls.


226
2017-09-20 11:22



Danke, aber die Option -h scheint auf Tru64 Unix nicht zu existieren.
Allgemeiner Hinweis: Installieren Sie GNU Utilities ... - reinierpost
Ich mag deinen Tipp über die Verwendung von Man, aber wirklich, die Suche auf Google ist so viel schneller als die Verwendung von Man eine Menge Zeit (wie jetzt, als ich dieses Ergebnis bei Google gefunden). - trusktr
Google ist gut und alles für allgemeine Hinweise, aber letztlich Man-Seiten sind System / OS, sogar Host-spezifisch, in der Regel erstellt, wenn die Software kompiliert oder installiert und damit maßgebend für die Software auf Ihrem speziellen System. - Nevin Williams
Um den Kreis zu schließen, gibt es online für gnu / linux: linux.die.net/man - MariusMatutiae


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

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

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


32
2017-09-20 12:33



Vielen Dank! Ich musste Live-Dateiänderungen in einem Ordner überwachen und verwenden ls -h ist bedeutungslos, nachdem eine Datei über 1 GB wächst, also verwende ich diesen Befehl in einer 1 Sekunde Schleife: while true ; do ls -al --block-size=M ; sleep 1 ; done - ccpizza


Versuchen ls -shR für rekursives, menschenlesbares Format.


14
2017-10-14 08:27



OP hat festgestellt, dass es keine gibt -h auf Tru64und dies über zwei Jahre, bevor diese Antwort veröffentlicht wurde. - Michael Kjörling
Denke, es ist meine Verantwortung, denen zu helfen, die mit der gleichen Google-Suche hierher kommen. - Sorter


Sie müssen verwenden awk 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 für Dateien aus, die kleiner als mega.

Möglicherweise müssen Sie die Feldnummer an die Art und Weise anpassen ls ist angelegt. Du kannst ändern mega zu "1000000", wenn das Ihre Präferenz ist.

Dies wird mehr Nachkommastellen drucken, als Sie wahrscheinlich möchten. Sie könnten eine Rundungsfunktion implementieren.


14
2017-09-20 13:36



Viel weniger elegant als ls -lh oder ls --block-size=M, aber AWK ist sehr nützlich! - Statwonk
Genau das, was ich brauchte. Alle anderen Lösungen runden das nächste MB ab, aber das zeigt ein paar Dezimalstellen und ist leicht anpassbar. - zeroimpl
Dies ist eine nette Lösung für diese Systeme (AIX - ich sehe dich an), die nicht die Option -h haben. - Buggabill


Versuchen ls -lashEs druckt Größen in einem für Menschen lesbaren Format


6
2017-09-20 11:23





du -sm filename.txt


5
2017-09-20 16:36



es wird immer die Größe aufgerundet ... wenn die Größe weniger als 1 MB ist sagen 500K, dann wird es auch 1M drucken - AnonGeek


Sie können auch eingeben

du -sh ./*

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


5
2018-04-19 22:57