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
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
.
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.
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.
essayez ls -shR
pour le format lisible par l'homme récursif.
essayez ls -lash
, les formats sont imprimés dans un format lisible par l'homme
du -sm filename.txt
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.
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.
ls -l --block-size=MB
Pour le paramètre --block-size
:
MB
pendant 10 ^ 6M
pendant 2 ^ 20Si 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.