web-dev-qa-db-fra.com

commande ls: comment afficher la taille du fichier en mégaoctets?

Sous Unix (Tru64), comment faire en sorte que la commande ls affiche la taille du fichier en mégaoctets? Actuellement, je peux l'afficher en octets en utilisant les éléments suivants:

ls -la
156
atricapilla

Peut-être que -h est suffisant pour vous:

-h
Avec l’option -l, utilisez les suffixes d’unité: octet, kilo-octet, mégaoctet, gigaoctet, téraoctet et Petabyte pour réduire le nombre de chiffres à trois ou moins en utilisant la base 2 pour tailles.

ls -lah

Conseil général: utilisez man commandname pour lire le manuel/l’aide d’une commande donnée, par exemple. ici man ls.

239
Felix

ls --block-size=M imprime les tailles en mégaoctets, mais affiche 1 Mo également pour les valeurs inférieures à 1 Mo. Je ne sais pas si cette option est acceptable dans votre version UNIX de ls, cependant.

En fait, ls -lh imprime également les tailles en gigaoctets si le fichier est assez gros (enfin: sur Linux 64 bits, cela fonctionne:>)

Sur un nœud latéral: du -sh * imprime également les tailles de répertoire dans le répertoire actuel.

32
Jan.

Vous devrez utiliser awk pour faire le calcul pour vous:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

Cela n'affectera pas la sortie des fichiers dont la taille est inférieure à mega.

Vous devrez peut-être ajuster le numéro de champ en fonction de la manière dont votre ls est présentée. Vous pouvez remplacer mega par "1000000" si tel est votre choix.

Cela imprimera plus de décimales que vous ne le souhaitez probablement. Vous pouvez implémenter une fonction d'arrondi.

15
Dennis Williamson

essayez ls -shR pour le format lisible par l'homme récursif.

14
Sorter

essayez ls -lash, les formats sont imprimés dans un format lisible par l'homme

8
iddqd

du -sm filename.txt

5
Ether

Vous pouvez aussi taper

du -sh ./*

Ceci listera tous les dossiers du répertoire en cours, avec un format lisible par l’homme, y compris les tailles de fichier plus connues en Kb, Mb, Gb.

5
Keng

Si vous voulez seulement la taille d'un fichier spécifique, la commande, une extrapolation triviale des réponses précédentes, est la suivante:

ls -sh nom de fichier

-s est pour la taille et la h est pour l'homme lisible (comme mentionné ci-dessus à quelques reprises).

La sortie ressemblera à ceci:

753M myfilename

Si vous omettez le ou les noms de fichier, le répertoire sera répertorié, en plaçant la taille de chaque fichier à côté de son nom - ce qui est similaire à ce que ls -la fait lorsqu'il est appelé sans arguments de nom de fichier.

J'espère que cela t'aides.

2
Rob Jones
ls -l --block-size=MB 

Pour le paramètre --block-size:

  • utilisez MB pendant 10 ^ 6
  • utilisez seulement M pendant 2 ^ 20
0
Evan

Si vous êtes simplement intéressé par la taille du fichier et que vous n'avez pas à utiliser la commande ls, procédez comme suit:

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

Cela imprimera la taille du fichier sans avoir à analyser quoi que ce soit.

0
SKN