2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

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

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

ls -la

Réponses (9)

250
250
250
2010-09-20 11:22:20 +0000

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

-h Lorsqu'il est utilisé avec l'option -l, utilisez les suffixes d'unité : Octet, Kilooctet, Mégaoctet, Gigaoctet, Téraoctet et Pétaoctet afin de réduire le nombre de chiffres à trois ou moins en utilisant la base 2 pour les tailles.

ls -lah

Conseils généraux : Utilisez man commandname pour lire le manuel/l'aide d'une certaine commande, par exemple ici man ls.

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M imprime les tailles en mégaoctets mais affiche également 1 Mo pour tout ce qui est inférieur à 1 Mo. Je ne suis pas sûr que cette option soit 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, de toute façon : sur Linux 64bit cela fonctionne :>)

Sur un nœud latéral : du -sh * imprime également les tailles du répertoire en cours.

15
15
15
2010-09-20 13:36:26 +0000

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 pour les fichiers qui sont plus petits que mega.

Vous devrez peut-être ajuster le numéro de champ pour qu'il corresponde à la façon dont votre ls est disposé. Vous pouvez changer mega en “1000000” si c'est votre préférence.

Cela imprimera plus de décimales que vous ne le souhaitez probablement. Vous pouvez mettre en œuvre une fonction d'arrondi.

13
13
13
2012-10-14 08:27:30 +0000

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

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

Vous pouvez également taper

du -sh ./*

Cela donnera la liste de tous les dossiers sous le répertoire actuel, avec un format lisible par l'homme, y compris les tailles de fichiers plus familières en Ko, Mo, Go.

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Pour le paramètre --block-size :

  • utiliser MB pour 10^6
  • utiliser seulement M pour 2^20
2
2
2
2015-06-13 07:36:58 +0000

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

ls -sh _filename(s)_

-s est pour la taille et le h est pour Human Readable (comme mentionné ci-dessus à plusieurs reprises). La sortie ressemblera à ceci :

753M myfilename

Si vous omettez le(s) nom(s) de fichier, le répertoire sera listé, en plaçant la taille de chaque fichier à côté de son nom - un peu comme ce que fait ls -la lorsqu'il est invoqué sans argument de nom de fichier.

J'espère que cela vous aidera.

0
0
0
2016-03-10 17:34:39 +0000

Si vous êtes juste intéressé par la taille du fichier, et que vous n'avez pas besoin d'utiliser la commande ls, essayez ce qui 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 qu'il soit nécessaire d'analyser quoi que ce soit.