งานนี้:
du -cshm .
แต่สิ่งนี้ล้มเหลว:
du -cshg .
ฉันจะดูเป็นหน่วย GB ได้อย่างไร
งานนี้:
du -cshm .
แต่สิ่งนี้ล้มเหลว:
du -cshg .
ฉันจะดูเป็นหน่วย GB ได้อย่างไร
คำตอบ:
GNU du
มี--block-size
ตัวเลือก:
du -csh --block-size=1G .
ดังที่sajbระบุไว้การข้ามอาร์กิวเมนต์ขนาดบล็อกจะปรับขนาดเอาต์พุตโดยอัตโนมัติ (และแสดงหน่วย) การใช้อาร์กิวเมนต์ขนาดบล็อกใด ๆ จะแสดงตัวเลข แต่ไม่ต้องใส่หน่วย
-h
ไม่ทำงาน เป็นตัวเลือกที่รองรับซึ่งทำให้เอาต์พุตอยู่ใน "human readable" (เช่นมีส่วนต่อท้ายของหน่วยและปรับสัดส่วน) แต่มันเป็นความจริงที่มันจะถูกละเว้นเมื่อ--block-size
มีการใช้งาน นี่คือข้อสังเกตในคำตอบของฉัน
เพื่อความสะดวกนี่เป็นข้อมูลอ้างอิงสำหรับ macOS:
-h
เอาต์พุต "อ่านง่าย" ใช้ส่วนต่อท้ายของหน่วย: ไบต์, กิโลไบต์, เมกะไบต์, กิกะไบต์, เทราไบต์และเพตาไบต์-k
แสดงบล็อกนับในบล็อก 1024- ไบต์ (1-Kbyte)-m
แสดงจำนวนบล็อกในบล็อก 1,048,576- ไบต์ (1 เมกกะไบท์)-g
แสดงจำนวนบล็อกในบล็อก 1,073,741,824-byte (1-Gbyte)นี่คือการทำงานของตัวเลือกต่าง ๆ ที่ให้1,234,567 KB
ไฟล์:
$ mkfile -n 1234567k file.txt
$ du file.txt
2469136 file.txt
$ du -k file.txt
1234568 file.txt
$ du -m file.txt
1206 file.txt
$ du -g file.txt
2 file.txt
$ du -h file.txt
1.2G file.txt
นอกจากนี้ยังเป็นที่น่าสังเกตว่าคุณสามารถกำหนดค่าพฤติกรรมโดยนัยแม้ว่าBLOCKSIZE
ตัวแปรสภาพแวดล้อม:
BLOCKSIZE
หากBLOCKSIZE
ตั้งค่าตัวแปรสภาพแวดล้อมและ-k
ไม่ได้ระบุตัวเลือกจำนวนบล็อกจะถูกแสดงในหน่วยของบล็อกขนาดนั้น หากBLOCKSIZE
ไม่ได้ตั้งค่าไว้และ-k
ไม่ได้ระบุตัวเลือกจำนวนบล็อกจะถูกแสดงใน512
บล็อก -byte
ใช้du -B1073741824
แต่ระวังมันให้ผลเป็นหน่วยจำนวนเต็มเท่านั้นและจะไม่มีความหมายด้วย-h
นอกเหนือจากคำตอบก่อนหน้านี้ดูเหมือนว่าจะแตกต่างกันระหว่าง coreutils รุ่นต่าง ๆ (หรือ locale?) เนื่องจากในโฮสต์ของฉันฉันได้รับ:
$ du -csh .
32G .
32G total
$ du --version | head -1
du (GNU coreutils) 7.4