คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:
ภายใต้ Linux ฉันกำลังมองหาคำสั่งเพื่อแสดงรายการไฟล์ที่ใหญ่ที่สุดและ / หรือไดเรกทอรีที่ใหญ่ที่สุดภายใต้ไดเรกทอรี
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:
ภายใต้ Linux ฉันกำลังมองหาคำสั่งเพื่อแสดงรายการไฟล์ที่ใหญ่ที่สุดและ / หรือไดเรกทอรีที่ใหญ่ที่สุดภายใต้ไดเรกทอรี
คำตอบ:
จากไดเรกทอรีใด ๆ :
du -a | sort -n -r
คำสั่งดังต่อไปนี้จะแสดงไดเรกทอรีหนึ่งระดับและขนาดของไดเรกทอรีเหล่านั้น
du --max-depth = 1 / เส้นทาง | sort -r -k1,1n
หากหนึ่งในนั้นติดกันจริง ๆ (อันสุดท้ายในรายการนั้นใหญ่ที่สุดเนื่องจากsort -r
) คุณจะเรียกใช้คำสั่งบนไดเรกทอรีนั้นอีกครั้งแล้วดำเนินการต่อไปจนกว่าคุณจะพบไดเรกทอรี / ไฟล์ที่ละเมิด
หากสิ่งที่คุณต้องการคือไฟล์ที่ใหญ่ที่สุดสิบไฟล์
ค้นหา / home -type f -exec du -s {} \; | sort -r -k1,1n | หัว
sort -r
หรือไม่ก็ตาม มีวิธีการรับหมายเลขสูงสุดที่ด้านบนหรือไม่
sort
sort -r
ฉันเข้าใจผิดว่า -r ทำงานอย่างไร ฉันเดาว่ามันไม่ใช่เรื่องใหญ่ ตัวอย่างของคุณมีประโยชน์มากและให้ข้อมูลที่ฉันต้องการ
sort
I have ( sort (GNU coreutils) 8.13
ใน Ubuntu 12.04.3) ตัวเลือก-r
จะไม่ทำงานหาก-n
ตามมาทันที-k
( -k1,1n
) ตัวเลือกลำดับนี้ใช้งานได้: sort -rnk1,1
.
ยูทิลิตีที่เรียกว่าncdu
จะให้ข้อมูลที่คุณต้องการ
sudo apt-get install ncdu
บน OS X สามารถติดตั้งได้โดยใช้ Homebrew:
brew install ncdu
du -sk * | เรียงลำดับ -nr | หัว -1
นี่จะแสดงไดเรกทอรี / ไฟล์ที่ใหญ่ที่สุดในไดเรกทอรีเป็น KB การเปลี่ยนค่าส่วนหัวจะส่งผลให้ไฟล์ / ไดเรกทอรีบนสุด
โพสต์นี้จะช่วยคุณได้ดี:
cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
คำสั่งต่อไปนี้จะส่งคืนไฟล์ที่ใหญ่ที่สุด 10 อันดับแรก /path
du -a -h / path | sort -h -r | หัว -n 10
ฉันชอบที่จะใช้-h
ตัวเลือกสำหรับการอ่าน ทั้งสองdu
และจำเป็นต้องมีsort
-h
ใช้
ls -A | xargs -I artifact du -ms artifact | sort -nr
คุณสามารถเพิ่มไปป์และใช้ head -5
ใช้ du ลองใช้วิธีนี้เพื่อสั่งผล:
du | sort -n
ลองใช้หนึ่งซับต่อไปนี้ (แสดงไฟล์ที่ใหญ่ที่สุด 20 อันดับแรกในไดเรกทอรีปัจจุบัน):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
หรือขนาดที่มนุษย์อ่านได้:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
คำสั่งที่สองในการทำงานใน OSX / BSD ถูกต้อง (ตาม
sort
ไม่ได้-h
), คุณจำเป็นต้องติดตั้งจากsort
coreutils
ดังนั้นชื่อแทนเหล่านี้มีประโยชน์ที่จะมีในไฟล์rcของคุณ(ทุกครั้งเมื่อคุณต้องการ):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
du -sh /path * | sort -nr | grep G
G สำหรับ GIG (เพื่อกำจัดไฟล์เล็กลง) ไฟล์ / ไดเรกทอรี
G
ในไฟล์