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


Dans Unix (Tru64), comment faire en sorte que la commande ls affiche la taille du fichier en mégaoctets? Actuellement, je peux le montrer en octets en utilisant ce qui suit:

ls -la


148
2017-09-20 11:20


origine




Réponses:


Peut être -h est suffisant pour vous:

-h
  Utilisé avec l'option -l, utilisez les suffixes d'unité: Byte, Kilobyte,               Megabyte, Gigabyte, Terabyte et Petabyte afin de réduire le               nombre de chiffres à trois ou moins en utilisant la base 2 pour les tailles.

ls -lah

Conseil général: utiliser man commandname lire le manuel / l'aide d'une commande spécifique, par ex. ici man ls.


226
2017-09-20 11:22



Merci, mais l'option -h ne semble pas exister sur Tru64 Unix.
Conseils généraux: installez les utilitaires GNU ... - reinierpost
J'aime votre astuce sur l'utilisation de l'homme, mais en réalité, la recherche sur Google est beaucoup plus rapide que l'utilisation de l'homme souvent (comme maintenant, lorsque j'ai trouvé ce résultat sur Google). - trusktr
Google convient parfaitement, mais finalement les pages de manuel sont des systèmes / systèmes d'exploitation, même spécifiques à l'hôte, généralement créés lorsque le logiciel est compilé ou installé, et font donc autorité sur les logiciels de votre système. - Nevin Williams
Juste pour boucler la boucle, il y a un homme en ligne pour gnu / linux: linux.die.net/man - MariusMatutiae


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

Réellement ls -lh imprime également des tailles en gigaoctets si le fichier est assez grand (Eh bien de toute façon: sur Linux 64bit cela fonctionne:>)

Sur un noeud secondaire: du -sh * Imprime également les tailles de répertoire dans le répertoire en cours.


32
2017-09-20 12:33



Merci! Je devais surveiller les changements de fichiers en direct dans un dossier et en utilisant ls -h est dénué de sens après qu'un fichier dépasse 1 Go, donc j'utilise cette commande dans une boucle de 1 seconde: while true ; do ls -al --block-size=M ; sleep 1 ; done - ccpizza


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


14
2017-10-14 08:27



OP a déclaré qu'il n'y a pas de -h sur Tru64et l'a fait plus de deux ans avant que cette réponse ne soit affichée. - Michael Kjörling
Je pense qu'il est de mon devoir d'aider ceux qui arrivent ici avec la même recherche Google. - Sorter


Vous devrez utiliser awk 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 plus petits que mega.

Vous devrez peut-être ajuster le numéro de champ pour correspondre à la façon dont votre ls est aménagé Vous pouvez changer mega à "1000000" si c'est votre préférence.

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


14
2017-09-20 13:36



Beaucoup moins élégant que ls -lh ou ls --block-size=M, mais AWK est très utile! - Statwonk
Juste ce dont j'avais besoin. Toutes les autres solutions arrondissent au MB le plus proche, mais cela montre quelques décimales et est facilement personnalisable. - zeroimpl
C'est une solution intéressante pour les systèmes (AIX - je vous regarde) qui n'ont pas l'option -h. - Buggabill


essayer ls -lash, il imprime des tailles dans un format lisible par l'homme


6
2017-09-20 11:23





du -sm filename.txt


5
2017-09-20 16:36



il arrondit toujours la taille ... si la taille est inférieure à 1 Mo disons 500K, alors aussi il imprimera 1M - AnonGeek


Vous pouvez aussi taper

du -sh ./*

Cela listera tous les dossiers sous le répertoire actuel, avec un format lisible par l'homme, y compris les tailles de fichiers les plus courantes en Kb, Mb, Gb.


5
2018-04-19 22:57