Perché è necessario "--human-readable" e non predefinito?


56

Numerosi strumenti da riga di comando utilizzano l' opzione -ho --human-readableper stampare le dimensioni del file in un formato leggibile (ad esempio, 36Gvs 37550836).

  • Perché questa opzione è necessaria e non quella predefinita?
  • Questi strumenti non sono principalmente destinati alla produzione umana?

Risposte:


75
  1. Perché in origine non esistevano e il comportamento predefinito è retrocompatibile. Inoltre, poiché non esistono su tutte le varianti di unix e il comportamento predefinito è compatibile con altre varianti di unix.
  2. Per molti strumenti, perché sono pensati per essere analizzabili da altri strumenti. Ciò accade raramente ls, ma l'analisi dell'output di duo dfè relativamente comune. (Mente, per df, dovresti usare df -Pquando analizzi.)
  3. Perché alcuni umani preferiscono il formato 37550836, perché quando vedi un mucchio di tali numeri, la loro dimensione relativa è visivamente chiara (numero di cifre).

22
Soprattutto 3) quando installo direttamente l'output sort -nperché sono meno interessato a vedere rapidamente le dimensioni approssimative di ogni directory e più in quale sottodirectory occupa troppo spazio sproporzionatamente ...
Shadur

8
@Shadur Ah ma anche l'ordinamento richiede un -hpo '!
quodlibetor,

3
Penso che 2 (ad esempio per lo scripting) sia il motivo principale.
SML

@quodlibetor Quale sistema operativo / distro? l'ordinamento lucido di kubuntu non accetta -h e non riesco a vedere alcun equivalente.
Joe,

7
@ user23861 è sort -hstato introdotto in GNU coreutils 7.5. Lucid ha 7.4, quindi su Ubuntu hai bisogno almeno di un maverick.
Gilles 'SO-smetti di essere malvagio' il

13

Nota che se imposti BLOCKSIZE = leggibile dall'uomo nel tuo ambiente, questo sarà il valore predefinito, almeno per i comandi dai coreutils GNU, cioè se stai usando bash put:

export BLOCKSIZE=human-readable

nel tuo file $ HOME / .bashrc.


2
Sembra che BLOCKSIZE=hpotrebbe essere sufficiente. Ma ottimo consiglio!
Mikel,

I documenti suggeriscono BLOCK_SIZE=human-readable. Inoltre non sapevo del supporto per migliaia di separatori fino a quando non l'ho letto.
Mikel,

Non sembra funzionare su OSX
James Lin il

@jameslin: questa potrebbe essere una variabile specifica coreutils GNU. Potresti creare un alias ...
Thor,

6

Accanto a quello che ha detto Gilles:

Quando questi strumenti sono stati inventati hdd era molto piccolo, rispetto ad oggi. Non hai bisogno di aiuto per leggere un numero come 400000.

E se non ti piace, usa il sistema alias. Nella tua home directory,

edit ~/.bashrc 

e inserire, ad esempio:

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

Si noti che contrariamente a molte altre lingue, non è consentito avere uno spazio vuoto prima o dietro l'operatore di assegnazione (segno di uguale).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.