ฉันต้องการรายการโฟลเดอร์จากไดเรกทอรีปัจจุบันหรือที่ฉันระบุด้วยขนาด
ฉันได้ลองกับ du แต่ฉันได้รับขนาดของไดเรกทอรีที่ฉันระบุเท่านั้น (du. ./f1) และ ls ไม่แสดงขนาดของโฟลเดอร์
ฉันจะทำสิ่งนี้โดยไม่มีสคริปต์ได้อย่างไร
ฉันต้องการรายการโฟลเดอร์จากไดเรกทอรีปัจจุบันหรือที่ฉันระบุด้วยขนาด
ฉันได้ลองกับ du แต่ฉันได้รับขนาดของไดเรกทอรีที่ฉันระบุเท่านั้น (du. ./f1) และ ls ไม่แสดงขนาดของโฟลเดอร์
ฉันจะทำสิ่งนี้โดยไม่มีสคริปต์ได้อย่างไร
คำตอบ:
หากคุณต้องการแสดงไดเรกทอรีทั้งหมดในไดเรกทอรีปัจจุบัน:
$ du -sh */
788K foo/
500K bar/
931K baz/
หากต้องการแสดงพวกเขาเริ่มต้นจากไดเรกทอรีอื่น:
$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/
หากคุณต้องการให้แน่ใจว่าไดเรกทอรีที่มีชื่อขึ้นต้นด้วยจุดรวมอยู่ให้ทำshopt -s dotglob
ก่อน
du -s */ | sort -n
.
shopt -s dotglob
doc
สำหรับ Mac ตัวเลือก --max-depth ถูกแทนที่ด้วย -d [depth] ดังนั้นหากต้องการดูรายการไดรฟ์รากของคุณที่มนุษย์สามารถอ่านได้รวมถึง 2 ระดับให้ใช้สิ่งต่อไปนี้:
du -hd 2 /*
หมายเหตุ: คำสั่งนี้จะเปิดเผยระดับไดเรกทอรีสองอันดับแรกนอกรูทของคุณ ซึ่งรวมถึงการสำรวจหนึ่งระดับในไดรฟ์ข้อมูลของคุณและจะแสดงรายการขนาดสรุปของแต่ละไดเรกทอรีระดับบนสุดในแต่ละไดรฟ์ข้อมูลที่คุณแนบ คำสั่งนี้อาจใช้เวลานานกว่าจะเสร็จสมบูรณ์ทั้งนี้ขึ้นอยู่กับสิ่งที่คุณแนบ
aproach อื่นคือตัวเลือก --max-depth
du -h --max-depth=1 .
จะแสดงรายการไดเรกทอรีและไฟล์ทั้งหมดภายใต้โฟลเดอร์ปัจจุบันที่มีขนาด
ความลึก 2 จะแสดงรายการโฟลเดอร์อีกระดับหนึ่ง
du -hd 2 .
ความลึก 2 ระดับ
ลอง:
$ du -s ./f1
หรือ
$ du -sh ./f1
สำหรับขนาดที่อ่านได้ง่ายขึ้น
$ du --max-depth=1 /var/www/ | sort -n -r
ควรกล่าวถึงคำสั่งเชลล์การใช้ดิสก์ NCurses
Ncdu เป็นเครื่องมือวิเคราะห์การใช้ดิสก์ที่มีส่วนต่อประสาน ncurses มันถูกออกแบบมาเพื่อค้นหา space hogs บนเซิร์ฟเวอร์ระยะไกลที่คุณไม่มีการตั้งค่ากราฟิกทั้งหมด แต่ก็เป็นเครื่องมือที่มีประโยชน์แม้ในระบบเดสก์ทอปปกติ Ncdu มุ่งหวังที่จะรวดเร็วใช้งานง่ายและใช้งานง่ายและควรจะสามารถทำงานในสภาพแวดล้อมแบบ POSIX ที่น้อยที่สุดเมื่อติดตั้ง ncurses
จากคำตอบที่ยอมรับคำสั่งนี้จะแสดงขนาดของโฟลเดอร์ในไดเรกทอรีและจะแสดงรายการขนาดตามขนาดเพื่อให้คุณตีความได้ง่ายขึ้น:
$ du -sh */ | sort -rn
สำหรับ Mac คุณสามารถติดตั้งการนำ GNU (Linux) ไปใช้du
กับ Homebrew ( brew install coreutils
) ตัวอย่างเช่น:
gdu folder -shL --exclude=.git
ที่ไหน
gdu
เป็นชื่อที่กำหนดให้กับการนำ GNU ไปใช้du
(โดยค่าเริ่มต้น Homebrew ไม่ได้ซ่อน/usr/bin/du
);s
สร้างผลรวมทั้งหมดสำหรับโฟลเดอร์ที่ระบุ (ละเว้นหากคุณต้องการดูรายละเอียด);h
ขนาดเอาต์พุตที่มนุษย์อ่านได้;L
ติดตาม symlink;--exclude=.git
แยกไดเรกทอรี git ภายในโฟลเดอร์ที่ระบุ (นี่เป็นเพียงตัวอย่าง)--exclude=blah
คุณสามารถละเว้นโฟลเดอร์ขึ้นโดยการเพิ่ม นอกจากนี้คุณยังสามารถระบุโฟลเดอร์หลายครั้ง (เช่นgdu folder1 folder2 ...
) c
และในกรณีที่คุณสามารถรวมผลรวมย่อยทั้งหมดเป็นขนาดเดียวโดยใช้ตัวเลือก
นี่คือสคริปต์ POSIX ที่จะทำงานกับ:
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'