Neden -human-okunabilir `gerekli ve varsayılan değil?


56

Birkaç komut satırı aracı, dosya boyutunu insan tarafından okunabilir bir biçimde (yani, vs ) yazdırmak için -hveya --human-readableseçeneğini kullanır .36G37550836

  • Bu seçenek neden gerekli değil de neden gerekli?
  • Bu araçlar temel olarak insanlara çıktı için değil mi?

Yanıtlar:


75
  1. Çünkü orjinal olarak var olmadılar ve varsayılan davranış geriye dönük olarak uyumlu. Ayrıca, tüm unix değişkenlerinde bulunmadığından ve varsayılan davranış diğer unix değişkenleriyle uyumludur.
  2. Birçok araç için, diğer araçlarla ayrıştırılabilir olmaları nedeniyle. Bu nadiren ls, ancak çıktısını ayrıştırma duveya dfgöreceli olarak yaygındır. ( Ayrıştırma için dfkullanmanız gerektiğine dikkat edin df -P.)
  3. Bazı insanlar 37550836 formatını tercih ettiğinden, çünkü bu sayıların bir demetini gördüğünüzde, göreceli büyüklükleri görsel olarak belirgindir (hane sayısı).

22
Özellikle 3) ne zaman, borunun düz aracılığıyla içine çıkış sort -nçabuk hangi alt dizin orantısız çok fazla yer kaplıyor her dizin ve daha kaba boyutunu görerek daha az ilgi olduğum için ...
shadur

8
@Shadur Ah ama sıralama da alır -h!
quodlibetor 14:11

3
Bence 2 (örneğin senaryo yazımı için) ana sebep.
sml

@quodlibetor Hangi işletim sistemi / dağıtım? kubuntu lucid sort kabul etmiyor -h ve hiçbir eşdeğer göremiyorum.
Joe,

7
sort -hGNU coreutils 7.5'te user23861 tanıtıldı. Lucid'de 7.4 var, bu yüzden Ubuntu'da en azından mavericklere ihtiyacınız var.
Gilles 'SO- kötülük'

13

BLOCKSIZE = ortamınızda insan tarafından okunabilir olarak ayarlarsanız, bunun en azından GNU coreutil komutları için, yani bash ifadesi kullanıyorsanız, varsayılan olacağını unutmayın:

export BLOCKSIZE=human-readable

$ HOME / .bashrc dosyanızda.


2
BLOCKSIZE=hYeterli olabilir gibi görünüyor . Ama harika bahşiş!
Mikel

Docs önermek BLOCK_SIZE=human-readable. Ayrıca bunu okuyana kadar binlerce ayırıcıya destek hakkında bir şey bilmiyordum.
Mikel

OSX üzerinde çalışıyor gibi görünmüyor
James Lin,

@jameslin: Bu GNU coreutils'e özgü bir değişken olabilir. Bir takma ad oluşturabilirsiniz ...
Thor

6

Gilles’un söylediklerinin yanında:

Bulunan hdd'nin bulunduğu bu araçlar, günümüze kıyasla çok küçük olduğunda. 400000 gibi bir rakamı okumak için yardıma ihtiyacınız yoktu.

Ve beğenmediyseniz, takma sistemi kullanın. Ana dizininizde

edit ~/.bashrc 

ve örneğin:

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

Diğer birçok dilin aksine, atama operatörünün önünde veya arkasında bir boşluk bırakmanıza izin verilmemektedir (eşittir işareti).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.