Por que o `--human-readable` é necessário e não o padrão?

56

Várias ferramentas de linha de comando usam a opção -hou --human-readablepara imprimir o tamanho do arquivo em um formato legível por humanos (por exemplo, 36Gvs 37550836).

  • Por que essa opção é necessária e não a padrão?
  • Essas ferramentas não são principalmente para produção para seres humanos?
DQdlM
fonte

Respostas:

75
  1. Porque eles não existiam originalmente e o comportamento padrão é compatível com versões anteriores. Além disso, porque eles não existem em todas as variantes unix e o comportamento padrão é compatível com outras variantes unix.
  2. Para muitas ferramentas, porque elas devem ser analisadas por outras ferramentas. Isso raramente é o caso ls, mas analisar a saída duou dfé relativamente comum. (Lembre-se, dfvocê deve usar df -Pao analisar.)
  3. Como alguns humanos preferem o formato 37550836, porque quando você vê vários desses números, o tamanho relativo deles é visualmente claro (número de dígitos).
Gilles 'SO- parar de ser mau'
fonte
22
Especialmente 3) quando eu canalizar a saída em linha reta através dentro sort -nporque eu estou menos interessado em ver rapidamente o tamanho bruto de cada diretório e mais em que subdiretório está ocupando desproporcionalmente muito espaço ...
Shadur
8
@ Shahad Ah, mas tipo leva um -htambém!
quodlibetor
3
Eu acho que 2 (por exemplo, para scripts) é o principal motivo.
SML
@quodlibetor O que OS / distribuição? A classificação lucid do kubuntu não aceita -h e não vejo equivalente.
18711 Joe
7
O @ user23861 sort -hfoi introduzido no GNU coreutils 7.5. O Lucid tem 7.4, então no Ubuntu você precisa pelo menos independente.
Gilles 'SO- stop be evil'
13

Observe que se você definir BLOCKSIZE = legível por humanos em seu ambiente, este será o padrão, pelo menos para os comandos do GNU coreutils, ou seja, se você estiver usando o bash put:

export BLOCKSIZE=human-readable

no seu arquivo $ HOME / .bashrc.

Thor
fonte
2
Parece que BLOCKSIZE=hpode ser suficiente. Mas ótima dica!
11262 Mikel
Os documentos sugerem BLOCK_SIZE=human-readable. Também não sabia sobre o suporte a milhares de separadores até que eu li isso.
Mikel
Parece não funcionar no OSX
James Lin
@ jameslin: pode ser uma variável específica do coreUtil GNU. Você poderia criar um apelido ...
Thor
6

Ao lado do que Gilles disse:

Quando essas ferramentas onde inventou o disco rígido era muito pequeno, em comparação com hoje. Você não precisou de ajuda para ler um número como 400000.

E se você não gostar, use o sistema de alias. No seu diretório pessoal,

edit ~/.bashrc 

e insira, por exemplo:

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

Observe que, ao contrário de muitos outros idiomas, você não pode deixar um espaço em branco antes ou atrás do operador de atribuição (sinal de igual).

Usuário desconhecido
fonte