ฉันจะคำนวณขนาดของไดเรกทอรีได้อย่างไร


181

จะทราบขนาดของไดเรกทอรีได้อย่างไร? รวมถึงไดเรกทอรีย่อยและไฟล์

คำตอบ:


230
du -s directory_name

หรือรับเอาต์พุตที่มนุษย์อ่านได้:

du -sh directory_name

-sตัวเลือกหมายความว่ามันจะไม่รายการขนาดสำหรับแต่ละไดเรกทอรีย่อยเท่านั้นขนาดรวม


7
จริงduของหน่วยเริ่มต้นเป็นบล็อก 512 ไบต์ตาม POSIX และกิโลไบต์บน Linux (ยกเว้นกรณีที่ตัวแปรสภาพแวดล้อมPOSIXLY_CORRECTมีการตั้งค่า) du -kหรือ
Gilles

3
@Gilles: จับได้ดี ฉันลบบิต "จำนวนไบต์" ออกจากคำตอบของฉันแล้ว
sepp2k

1
ทำงานตามที่กำหนดไว้
skidadon

1
หากไดเรกทอรีมีขนาดใหญ่มากและมีไดเรกทอรีย่อยจำนวนมากต้องใช้เวลานาน ... เกือบ 1 นาที .. เป็นเรื่องปกติหรือไม่ มีวิธีที่จะทำให้ขนาดเร็วขึ้นหรือไม่?
Yeahman

2
ฉันต้องการคำนวณขนาดของโฟลเดอร์ "กระเป๋า" ของฉันdu -sh bagทำงานได้อย่างสมบูรณ์แบบ!
António Almeida

7

ในขณะที่ใช้แพคเกจแยกต่างหากเช่น ncdu อาจทำงานได้ดีการเปรียบเทียบหลาย ๆ โฟลเดอร์สามารถทำได้ในระดับหนึ่งโดยให้รายชื่อโฟลเดอร์ที่มีขนาดใหญ่ขึ้น ตัวอย่างเช่นเพื่อเปรียบเทียบไดเรกทอรีระดับบนสุดในระบบของคุณ ...

cd /    
sudo du -sh ./*

2
ง่ายขึ้น,du -sh /*
roaima


1
du -csh

-c สร้างผลรวมทั้งหมด


1
-cไม่ได้ทำให้ความรู้สึกที่จะใช้ร่วมกับ-sใช่มั้ย? -sแสดงเฉพาะขนาดของไดเรกทอรีที่ระบุนั่นคือขนาดรวมของไดเรกทอรี
Andreas Storvik Strauman

1

ลอง

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

สิ่งนี้จะช่วยค้นหาไดเรกทอรีขนาดใหญ่เพื่อใช้ในการกรอง du -sh ./*


0

คุณยังสามารถใช้ ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l สำหรับรายชื่อยาว -d ใช้สำหรับแสดงข้อมูล dir ไม่ใช่เนื้อหาของ dir -h ใช้สำหรับแสดงขนาดในรูปแบบที่มนุษย์สามารถอ่านได้


4
สิ่งนี้ไม่ถูกต้องผู้ที่ขอจะมองหารอยเท้าของไดเรกทอรีอย่างชัดเจนและมีเนื้อหาอยู่ในดิสก์ คำตอบของ@ sepp2kถูกต้อง
blong

1
คำสั่ง ls -ldh แสดงขนาดของโครงสร้าง inode ของไดเรกทอรีเท่านั้น ตัวชี้วัดคือภาพสะท้อนขนาดของตารางดัชนีของชื่อไฟล์ แต่ไม่ใช่ขนาดจริงของเนื้อหาไฟล์ภายในไดเรกทอรี
linbianxiaocao

0

ฉันมักจะติดตั้งแพคเกจ "ncdu" และดูผลลัพธ์ทั้งหมดของไดเรกทอรีทั้งหมดที่มีการแสดงกราฟิก นี่เป็นเพราะฉันมักจะต้องรู้ว่าสิ่งที่ใช้พื้นที่ดิสก์มากที่สุดในเครื่องของฉันไม่ว่าไดเรกทอรีเดียวจะสรุปเท่าใด

การใช้งาน: sudo ncdu /(คุณไม่จำเป็นsudoสำหรับโฟลเดอร์ที่คุณได้รับอนุญาตให้อ่าน)

จะใช้เวลาสักครู่ในการสแกนสถิติการใช้งานดิสก์ในระบบไฟล์ทั้งหมด มันมีการแสดงกราฟิกบรรทัดคำสั่งที่ดีและรวมถึงการนำทางแป้นพิมพ์โดยใช้ปุ่มลูกศรเช่นไปลึกหรือสูงกว่าในเส้นทางที่สแกน Dนอกจากนี้คุณยังสามารถลบรายการโดยการกด



0

du -hd1

จะแสดงรายการในรูปแบบขนาดที่สามารถอ่านได้ของไดเรกทอรีทั้งหมดเช่น

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

ฉันลองด้วยคำสั่งด้านล่างตั้งแต่ได้รับคำตอบที่ดีที่สุดแล้ว

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

เอาท์พุต

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

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