เหตุใดจึงต้อง `- มนุษย์ที่อ่านได้ 'และไม่ใช่ค่าเริ่มต้น


56

เครื่องมือบรรทัดคำสั่งหลายตัวใช้-hหรือ--human-readableตัวเลือกเพื่อพิมพ์ขนาดไฟล์ในรูปแบบที่มนุษย์สามารถอ่านได้ (เช่น36Gvs 37550836)

  • เหตุใดจึงต้องใช้ตัวเลือกนี้และไม่ใช่ค่าเริ่มต้น
  • เครื่องมือเหล่านี้ไม่ใช่เพื่อการส่งออกไปยังมนุษย์เป็นหลักใช่หรือไม่

คำตอบ:


75
  1. เพราะพวกเขาไม่ได้มีอยู่เดิมและพฤติกรรมเริ่มต้นเข้ากันได้ย้อนหลัง นอกจากนี้เนื่องจากไม่มีอยู่ในตัวแปร unix ทั้งหมดและพฤติกรรมเริ่มต้นเข้ากันได้กับตัวแปร unix อื่น ๆ
  2. สำหรับเครื่องมือมากมายเพราะพวกมันมีวัตถุประสงค์เพื่อแยกวิเคราะห์โดยเครื่องมืออื่น ๆ นี่เป็นกรณีที่ไม่ค่อยlsแต่แยกเอาท์พุทของduหรือdfเป็นเรื่องธรรมดา (ความคิดสำหรับdfคุณควรใช้df -Pเมื่อแยกวิเคราะห์)
  3. เนื่องจากมนุษย์บางคนชอบรูปแบบ 37550836 เพราะเมื่อคุณเห็นตัวเลขจำนวนมากขนาดญาติของพวกเขาจะเห็นชัดเจน (จำนวนหลัก)

22
โดยเฉพาะอย่างยิ่ง 3) เมื่อฉันท่อส่งออกตรงผ่านเข้าไปsort -nเพราะฉันสนใจน้อยลงในการได้อย่างรวดเร็วเห็นขนาดคร่าวๆของแต่ละไดเรกทอรีและอื่น ๆ ซึ่งในไดเรกทอรีย่อยคือการขึ้นพื้นที่ disproportionally มากเกินไป ...
Shadur

8
@Shadur Ah แต่การเรียงลำดับ-hก็เช่นกัน!
quodlibetor

3
ฉันคิดว่า 2 (เช่นสำหรับการเขียนสคริปต์) เป็นเหตุผลหลัก
sml

@quodlibetor OS / distro อะไร? การจัดเรียง kubuntu lucid ไม่ยอมรับ -h และฉันไม่สามารถมองเห็นสิ่งที่เทียบเท่า
โจ

7
@ user23861 sort -hถูกนำมาใช้ใน GNU coreutils 7.5 Lucid มี 7.4 ดังนั้นใน Ubuntu คุณต้องมีอย่างน้อย
Gilles 'หยุดความชั่วร้าย'

13

โปรดทราบว่าถ้าคุณตั้งค่า BLOCKSIZE = มนุษย์สามารถอ่านได้ในสภาพแวดล้อมของคุณสิ่งนี้จะเป็นค่าเริ่มต้นอย่างน้อยสำหรับคำสั่งจาก GNU coreutils เช่นถ้าคุณใช้ bash put:

export BLOCKSIZE=human-readable

ในไฟล์ $ HOME / .bashrc ของคุณ


2
ดูเหมือนว่าBLOCKSIZE=hอาจจะเพียงพอ แต่เคล็ดลับที่ยอดเยี่ยม!
มิเคล

เอกสารBLOCK_SIZE=human-readableแนะนำ ยังไม่รู้เกี่ยวกับการรองรับตัวคั่นหลายพันจนกว่าฉันจะอ่าน
มิเคล

ดูเหมือนจะไม่ทำงานบน OSX
James Lin

@jameslin: นี่อาจเป็นตัวแปรเฉพาะของ GNU coreutils คุณสามารถสร้างชื่อแทน ...
Thor

6

นอกจากสิ่งที่ Gilles พูดว่า:

เมื่อเครื่องมือเหล่านี้ที่คิดค้น HDD มีขนาดเล็กมากเมื่อเทียบกับวันนี้ คุณไม่ต้องการความช่วยเหลือในการอ่านตัวเลขเช่น 400000

และถ้าคุณไม่ชอบให้ใช้ระบบนามแฝง ในไดเรกทอรีบ้านของคุณ

edit ~/.bashrc 

และแทรกตัวอย่างเช่น:

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

โปรดทราบว่าในทางตรงกันข้ามกับภาษาอื่น ๆ คุณไม่ได้รับอนุญาตให้เว้นว่างไว้ก่อนหรือหลังผู้ดำเนินการที่ได้รับมอบหมาย (เครื่องหมายเท่ากับ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.