Pourquoi `--human-readable`` est-il nécessaire et non par défaut?


56

Plusieurs outils de ligne de commande utilisent l' option -hou --human-readablepour imprimer la taille du fichier dans un format lisible par l'homme (c'est-à-dire, 36Gvs 37550836).

  • Pourquoi cette option est-elle nécessaire et non la valeur par défaut?
  • Ces outils ne sont-ils pas principalement destinés aux humains?

Réponses:


75
  1. Parce qu'ils n'existaient pas à l'origine et que le comportement par défaut est compatible avec les versions antérieures. De plus, comme elles n'existent pas sur toutes les variantes Unix, le comportement par défaut est compatible avec les autres variantes Unix.
  2. Pour de nombreux outils, car ils sont conçus pour être analysables par d’autres outils. C'est rarement le cas pour ls, mais l'analyse de la sortie de duou dfest relativement courante. (Attention, dfvous devriez utiliser df -Plors de l'analyse syntaxique.)
  3. Parce que certains humains préfèrent le format 37550836, car leur taille relative est visuellement claire (nombre de chiffres).

22
Particulièrement 3) quand je dirige la sortie directement sort -nparce que je suis moins intéressé par une vue rapide de la taille approximative de chaque répertoire et davantage par le sous-répertoire qui prend trop d'espace de manière disproportionnée ...
Shadur

8
@Shadur Ah mais le genre en prend un -haussi!
quodlibetor

3
Je pense que 2 (par exemple pour les scripts) est la raison principale.
sml

@quodlibetor Quel système d'exploitation / distribution? kubuntu lucid sort n'accepte pas -h et je ne vois pas d'équivalent.
Joe

7
@ user23861 a sort -hété introduit dans GNU coreutils 7.5. Lucid a 7.4, alors sur Ubuntu, vous avez besoin d’au moins maverick.
Gilles, arrête de faire le mal

13

Notez que si vous définissez BLOCKSIZE = lisible par l'homme dans votre environnement, ce sera la valeur par défaut, du moins pour les commandes de GNU coreutils, c'est-à-dire si vous utilisez bash put:

export BLOCKSIZE=human-readable

dans votre fichier $ HOME / .bashrc.


2
On dirait que cela BLOCKSIZE=hpourrait suffire. Mais bon conseil!
Mikel

Les docs suggèrent BLOCK_SIZE=human-readable. Aussi, je ne connaissais pas le support de milliers de séparateurs jusqu'à ce que je lise cela.
Mikel

Ne semble pas fonctionner sur OSX
James Lin

@jameslin: il peut s'agir d'une variable spécifique à GNU coreutils. Vous pouvez créer un alias ...
Thor

6

À côté de ce que Gilles a dit:

Quand ces outils ont été inventés, le disque dur était très petit, comparé à aujourd'hui. Vous n'avez pas besoin d'aide pour lire un chiffre comme 400000.

Et si vous ne l'aimez pas, utilisez le système d'alias. Dans votre répertoire personnel,

edit ~/.bashrc 

et insérez, par exemple:

alias df='df -h'
alias du='du -h'

Notez que contrairement à de nombreuses autres langues, vous ne pouvez pas utiliser de blanc avant ou derrière l'opérateur d'affectation (signe égal).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.