De quelles commandes ai-je besoin pour que Linux ls
affiche la taille du fichier en Mo?
ls -l --block-size=M
vous donnera une liste longue de format (nécessaire pour voir réellement la taille du fichier) et arrondit les tailles de fichier jusqu'au MiB le plus proche.
Si vous souhaitez utiliser des Mo (10 ^ 6 octets) plutôt que des unités MiB (2 ^ 20 octets), utilisez --block-size=MB
plutôt.
Si vous ne voulez pas que le M
suffixe 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 que la taille des fichiers soit exprimée en unités "raisonnables", plutôt qu'en mégaoctets , vous pouvez utiliser -lh
une liste longue et une taille lisible par l'homme . Il utilisera des unités de taille de fichier pour maintenir la taille des fichiers présentés avec environ 1-3 chiffres (vous verrez la taille des fichiers comme 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
et ainsi de suite.
Le --block-size
paramètre est décrit dans la page de manuel de ls; man ls
et rechercher SIZE
. Cela permet également d’utiliser des unités autres que MB / MiB, et à première vue (je n’ai pas essayé cela), des tailles de blocs arbitraires (vous pouvez donc voir la taille du fichier sous forme de blocs de 429 octets si vous le souhaitez). à).
Notez que les deux --block-size
et -h
sont des extensions GNU sur Open Groupls
, cela risque donc de ne pas fonctionner si vous n'avez pas de domaine utilisateur GNU (comme la plupart des installations Linux). La version ls
de GNU Coreutils 8.5 prend en charge --block-size et -h comme décrit ci-dessus. Merci à kojiro pour l'avoir signalé.
--block-size=M
unM
suffixe à côté de la taille et l’utiliser--block-size=1M
pour l’omettre. Il convient également de mentionner que vous avez besoin de GNU ls pour cela (la plupart des systèmes Linux non embarqués auront GNU ls).ls
? Standardls
n'a pas un tel argument. Avec l' extension xsi,ls
l'-s
indicateur est indiqué, ce qui lui permet d'indiquer le nombre de blocs, mais il n'y a pas d'indicateur standard--block-size
.--block-size
comme coreutils 8.5, ce qui est installé sur mon système Debian Squeeze. Puisque la question était explicitement pour Linux et ne spécifiait rien d'autre, je dois admettre que je supposais un environnement utilisateur centré sur GNU Coreutils. J'ai mis à jour la réponse pour clarifier cela. (En outre, le groupe ouvert ne semble pas avoir -h non plus.:)
)--block-size
est une extension GNU. Je soupçonne que Mac OS X n’utilise pas GNUls
.ls -lh
donne des tailles de fichiers lisibles par l'homme, format long.Il utilise les suffixes k, M, G et T (ou pas de suffixe pour les octets) selon les besoins, de sorte que le nombre reste petit, par exemple
1.4K
ou178M
.-h
est une extension 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 le fait pour GNU coreutils
ls
.la source
h
est beaucoup plus facile d'écrire que--block-size=M
ls -l
du tout sinon les humains? : pls -l
sortie est la mauvaise façon de faire les choses, 99% du temps. unix.stackexchange.com/questions/128985/why-not-parse-ls . Ce 1% est généreux et se limite plutôt à des lignes uniques écrites de manière interactive pour une utilisation unique, et non à un script que vous allez utiliser de manière répétée sur des noms de fichiers inconnus.ls -lhS
trier par taille, dans un format lisible par l'hommela source
ls -lh
réponse pour les raisons pour lesquelles cela ne répond pas vraiment à la question.Et c’est l’option permettant de répertorier tous les éléments d’un répertoire par ordre de taille du fichier (toujours lisible par l’être humain) par ordre croissant.
la source