Comment faire pour que `ls` affiche la taille des fichiers en mégaoctets ?

De quelles commandes ai-je besoin pour que le ls de Linux affiche la taille du fichier en Mo ?

Solution

ls -l --block-size=M vous donnera une liste au format long (nécessaire pour voir la taille du fichier) et *arrondira la taille des fichiers au MiB le plus proche.

Si vous voulez des unités en MB (10^6 octets) plutôt qu'en MiB (2^20 octets), utilisez --block-size=MB à la place.

Si vous ne voulez pas que le suffixe M soit attaché à la taille du fichier, vous pouvez utiliser quelque chose comme --block-size=1M. Merci à Stéphane Chazelas pour cette suggestion.

Si vous souhaitez simplement connaître la taille des fichiers en unités "raisonnables", plutôt qu'en mégaoctets, vous pouvez utiliser -lh pour obtenir une liste au format long et une présentation de la taille des fichiers "lisible par l'homme". Ceci utilisera les unités de taille de fichier pour que les tailles de fichier soient présentées avec environ 1 à 3 chiffres (vous verrez donc des tailles de fichier comme 6.1K, 151K, 7.1M, 15M, 1.5G et ainsi de suite.

Le paramètre --block-size est décrit dans la page de manuel de ls ; man ls et cherchez SIZE. Il permet d'utiliser des unités autres que MB/MiB, et d'après ce que je vois (je n'ai pas essayé) des tailles de blocs arbitraires (vous pouvez donc voir la taille du fichier comme un nombre de blocs de 429 octets si vous le souhaitez).

Notez que --block-size et -h sont des extensions GNU au-dessus de [the Open Group's ls] (http://pubs.opengroup.org/onlinepubs/009695399/utilities/ls.html), donc cela peut ne pas fonctionner si vous n'avez pas un userland GNU (ce qui est le cas de la plupart des installations Linux). Le ls de GNU Coreutils 8.5 supporte --block-size et -h comme décrit ci-dessus. Merci à kojiro de nous l'avoir signalé.

Commentaires (18)

ls -lh donne des tailles de fichiers lisibles par l'homme, au format long.

Il utilise les suffixes k, M, G, et T (ou aucun suffixe pour les octets) selon les besoins pour que le nombre reste petit, par exemple 1.4K ou 178M.

-h est une extension de GNU coreutils, pas une base POSIX.

Notez que cela ne répond pas exactement à la question posée. Si vous voulez des tailles strictement en MiB, même pour des fichiers petits ou gigantesques, la réponse de [Michael Kjörling's fait cela pour GNU coreutils ls][1].

[1] : https://unix.stackexchange.com/questions/64148/how-do-i-make-ls-show-file-sizes-in-megabytes/64150#64150

Commentaires (11)

ls -lhS trier par taille, dans un format lisible par l'homme

Commentaires (5)