Mengapa `--human-readable` diperlukan dan tidak default?


56

Beberapa alat baris perintah menggunakan opsi -hatau --human-readableuntuk mencetak ukuran file dalam format yang dapat dibaca manusia (yaitu, 36Gvs 37550836).

  • Mengapa opsi ini diperlukan dan bukan default?
  • Bukankah alat-alat ini terutama untuk output ke manusia?

Jawaban:


75
  1. Karena mereka tidak ada pada awalnya, dan perilaku default kompatibel ke belakang. Juga, karena mereka tidak ada pada semua varian unix, dan perilaku default kompatibel dengan varian unix lainnya.
  2. Untuk banyak alat, karena alat tersebut dimaksudkan agar dapat diuraikan oleh alat lain. Ini jarang terjadi ls, tetapi parsing output duatau dfrelatif umum. (Pikiran, untuk df, Anda harus menggunakan df -Psaat parsing.)
  3. Karena beberapa manusia lebih suka format 37550836, karena ketika Anda melihat banyak angka seperti itu, ukuran relatif mereka jelas secara visual (jumlah digit).

22
Terutama 3) ketika saya menyalurkan output langsung ke sort -nkarena saya kurang tertarik dengan cepat melihat ukuran kasar dari setiap direktori dan lebih banyak di mana subdirektori mengambil terlalu banyak ruang yang tidak proporsional ...
Shadur

8
@ Shadur Ah tapi sort juga butuh -h!
quodlibetor

3
Saya pikir 2 (misalnya untuk skrip) adalah alasan utama.
sml

@quodlibetor Apa OS / distro? semacam jernih kubuntu tidak menerima -h dan saya tidak bisa melihat setara.
Joe

7
@ user23861 sort -hdiperkenalkan di GNU coreutils 7.5. Lucid memiliki 7.4, jadi pada Ubuntu Anda membutuhkan setidaknya maverick.
Gilles 'SANGAT berhenti menjadi jahat'

13

Perhatikan bahwa jika Anda mengatur BLOCKSIZE = dapat dibaca manusia di lingkungan Anda, ini akan menjadi default, setidaknya untuk perintah dari GNU coreutils, yaitu jika Anda menggunakan bash put:

export BLOCKSIZE=human-readable

dalam file $ HOME / .bashrc Anda.


2
Sepertinya BLOCKSIZE=hmungkin cukup. Tapi tip yang bagus!
Mikel

The docs menyarankan BLOCK_SIZE=human-readable. Juga tidak tahu tentang dukungan untuk ribuan pemisah sampai saya membacanya.
Mikel

Tampaknya tidak berfungsi di OSX
James Lin

@jameslin: ini mungkin variabel spesifik GNU coreutils. Anda dapat membuat alias ...
Thor

6

Di samping apa yang dikatakan Gilles:

Ketika alat ini menemukan hdd sangat kecil, dibandingkan dengan saat ini. Anda tidak perlu bantuan untuk membaca angka seperti 400000.

Dan jika Anda tidak menyukainya, gunakan sistem alias. Di direktori home Anda,

edit ~/.bashrc 

dan masukkan, misalnya:

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

Perhatikan bahwa berbeda dengan banyak bahasa lain, Anda tidak diizinkan memiliki blank sebelum atau di belakang operator penugasan (tanda sama).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.