ค้นหาสิ่งที่ใช้พื้นที่ทั้งหมดใน * ระวัง


21

ลำดับของคำสั่งใดจะบอกฉันว่าไฟล์ใดเป็นไฟล์ที่ใหญ่ที่สุดเริ่มต้นจากไดเรกทอรีเฉพาะรวมถึงไดเรกทอรีย่อยทั้งหมด ฉันอยากรู้ว่าที่ว่างทั้งหมดไปไหน

ควรใช้คำสั่ง unix'y ปกติ

ถ้าเป็นไปได้พยายามให้มันเข้ากันได้กับ Sun OS 5.10 (อาจจะนอกเหนือจากคำตอบทั่วไปของ Linux ไม่ใช่เพื่อทดแทนเพื่อให้เป็นทั่วไปที่สุด)


มีสองคะแนนสำหรับ SU และสองสำหรับ SF อันไหนที่เหมาะสมกว่า? ในความคิดของฉัน
mmyers

5
@mmyers: มอบให้กับ SU ... SU ต้องการคำถามจริง!
Shog9

1
แต่ SU มีคำถามที่คล้ายกันอยู่แล้ว! superuser.com/questions/9847/…
Jonik

คำตอบ:


11

ฉันชอบที่จะใช้du -sh *เพื่อดูว่าแต่ละไดเรกทอรีใหญ่แค่ไหนในไดเรกทอรีปัจจุบัน

นอกจากนี้คุณสามารถจัดเรียงให้มีโฟลเดอร์ที่ใหญ่กว่าก่อนได้: du -shx * | sort -hr. สำหรับdu:

  • -s, --summarize: แสดงผลรวมสำหรับแต่ละอาร์กิวเมนต์เท่านั้น
  • -h, --human-readable: ขนาดการพิมพ์ในรูปแบบที่มนุษย์อ่านได้ (เช่น 1K 234M 2G)
  • -x, --one-file-system: ข้ามไดเรกทอรีในระบบไฟล์ต่าง ๆ

สำหรับsort:

  • -h, --human-numeric-sort: เปรียบเทียบตัวเลขที่มนุษย์อ่านได้ (เช่น 2K 1G)

นี้เป็นจริงที่มีประโยชน์จริงๆกับ mod เล็ก ๆ น้อย ๆdu -s * | sort -nr:
Alex Budovski

5
du -sh * | sort -hrคุณสามารถเก็บขนาดไฟล์ในรูปแบบการอ่านของมนุษย์ด้วย
Jorge Israel Peña

du -shx * | sort -hrเป็นสิ่งที่ดี แต่จะส่งคืนไดเรกทอรีปัจจุบันเท่านั้น ฉันจะทำระบบนี้ให้กว้างได้อย่างไร? และฉันจะยกเว้นทุกสิ่งที่ต่ำกว่า 100mb ได้อย่างไร ขอบคุณ
TEM

ขึ้นอยู่กับการภาวนา ณ เชลล์ ดังนั้น*สิ่งที่ทำให้มันใช้กับทุกสิ่งในไดเรกทอรีปัจจุบัน แต่คุณสามารถเปลี่ยนได้อย่างง่ายดายเช่นsome/other/path/*หรือถ้าคุณเพียงต้องการเรียกใช้บนไดเรกทอรีเดียวโดยรวมแล้ว*ละทิ้งรูปแบบ glob สำหรับการกรองสิ่งต่าง ๆ อาจถามคำถามแยกต่างหาก
Jorge Israel Peña

เพื่อเรียกใช้ซ้ำทั้งระบบคุณอาจต้องการที่จะจับคู่มันขึ้นกับfindที่รากไดเรกทอรีบางและใช้ของพารามิเตอร์ในการเรียก-exec โปรแกรมตัวเองอาจจะสามารถกรองขึ้นอยู่กับขนาดไฟล์ที่มีสิ่งที่ต้องการ ดูคำถามนี้ อาจจะเป็นสิ่งที่ชอบแม้ว่าจะยังไม่ได้ทดสอบ dufindsize +100Mfind / -size +100M -exec du -sh {} \; | sort -hr
Jorge Israel Peña


5

โดยทั่วไปคุณสามารถใช้คำสั่ง du อะไรแบบนี้

du -a /home | sort -rn |head -1

โปรดดูที่หน้า man หรือ info du เพื่อดูตัวเลือกเพิ่มเติม

หรือคุณสามารถใช้ GNU find

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  

'ค้นหา' บน Sun OS 5.10 มีทางเลือกอื่นที่ฉันสามารถใช้กับ -printf ได้หรือไม่
Alex Budovski

นอกจากนี้ยังมีวิธีใดที่ฉันจะได้รับคำสั่งแรก (du ... ) เพื่อกรองไดเรกทอรีหรือไม่ ฉันสนใจเฉพาะไฟล์เช่นเดียวกับคำสั่งที่สองของคุณ
Alex Budovski

5

ไม่ใช่บรรทัดคำสั่ง แต่ยังคง unix'y: kdirstat

ฉันใช้มันเพื่อค้นหาว่าที่ว่างทั้งหมดไปที่ใดและฉันชอบมันมากกว่าการวิเคราะห์การใช้ดิสก์ (Baobab) เป็นหนึ่งในไม่กี่แอพของ KDE ที่ยอมรับได้ในสภาพแวดล้อม GNOME ของฉัน ;-)

ป้อนคำอธิบายรูปภาพที่นี่

ตาม kdirstat.sourceforge.net มันทำงานบน Solaris

ในขณะที่ KDirStat เป็นโปรแกรม KDE มันจะทำงานได้ดีบนเดสก์ท็อป X11 ทุกตัวเช่นรันบน Linux, BSD และระบบ Unix อื่น ๆ อีกมากมาย (Solaris, HP-UX, AIX, ... )


ในอูบุนตู: k4dirstat และ qdirstat ล่าสุดขึ้นหนึ่ง ฉันไม่ชอบที่พวกเขาอนุญาตให้ลบโฟลเดอร์
develCuy

3
du -a | sort -n

จะทำงาน การใช้baobab (เป็นส่วนหนึ่งของ gnome utils ดังนั้นจึงน่าจะติดตั้งในระบบของคุณแล้ว) คุณจะได้รับการแบ่งกราฟิกที่ค่อนข้างดีของพื้นที่ที่ใช้


เหตุผลใดที่จะใช้ -g แทน -n? "ใช้ตัวเลือกนี้เฉพาะเมื่อไม่มีทางเลือกมันช้ากว่า --numeric-sort (-n) และอาจสูญเสียข้อมูลเมื่อแปลงเป็นทศนิยม" gnu.org/software/coreutils/manual/html_node/
จากที่นั่น

@therefromhere: ฉันใช้ manpage ซึ่งไม่ได้ค่อนข้างละเอียดเหมือนไซต์ที่คุณเชื่อมโยง ฉันเพิ่งเลือกตัวเลือกแรกที่ทำงานกับกรณีเฉพาะ แต่คุณพูดถูก ฉันได้แก้ไข anwser ของฉันแล้ว ขอบคุณ!
balpha

3

Philesightเรียกใช้จาก commandline และส่งผลให้เป็น PNG plus เว็บเซิร์ฟเวอร์เพื่อให้คุณสามารถดูแบบออนไลน์ได้

ฉันพบมันผ่านรายการโปรแกรมการใช้ดิสก์นี้ รายการที่เป็นประโยชน์ของโปรแกรมเพิ่มเติมจากncdu(ซึ่งเล็ก zippy และ command-line เท่านั้น): http://www.makeuseof.com/tag/how-to-analyze-your-disk-usage-pattern-in- ลินุกซ์ /


3

ตัววิเคราะห์การใช้ดิสก์

หากคุณใช้ดิสทริบิวเตอร์ Debian / Ubuntu จะมี GUIs สองตัวที่พร้อมใช้งานในที่เก็บซึ่งคุณสามารถค้นหาได้โดยใช้ synaptic

ป้อนคำอธิบายรูปภาพที่นี่


3
du . -ha | sort -hr
  • -a, --all: เขียนนับสำหรับไฟล์ทั้งหมดไม่ใช่แค่ไดเรกทอรี
  • -h, --human-readable: ขนาดการพิมพ์ในรูปแบบที่มนุษย์อ่านได้ (เช่น 1K 234M 2G)

1
ฉันพบความจริงที่ว่าคุณสามารถออกเสียงคำสั่งนั้นได้อย่างสนุกสนาน ฟังดูตลกเกินไป
jtbandes

2
-1 นี่เป็นสิ่งที่ผิด "-h" ในคำสั่ง du แบ่งการเรียงลำดับ
จากที่นั่น

1
มันไม่ผิดแค่พกพาไม่ได้ -h เป็น GNUism ใช้ -k แทนกับ Sun OS
ลุดวิก Weinzierl

+ ลุดวิกฉันไม่คิดว่าคุณจะเข้าใจ โดยการเพิ่ม -h ทำให้ตัวเลขมนุษย์อ่านได้ดังนั้นพวกเขาจะไม่ได้ตัวเลขซึ่งสามารถใช้โดยคำสั่ง sort เช่นสิ่งต่าง ๆ จะถูกจัดเรียงเช่นนี้: "760K 784M 788K 860K 944K 985M" มันควรจะเป็นdu -ha | sort -hrหรือdu -ha | gsort -hr(บน osx หลังจากติดตั้งอุปกรณ์หลัก)
Gerry

2

ผู้บัญชาการเที่ยงคืน

หากคุณต้องการรายการผลลัพธ์ที่มีตัวเลือก GUI และการนำทางที่ดีให้ติดตั้ง Midnight Commander ( mcในตัวจัดการแพ็คเกจส่วนใหญ่) และทำเครื่องหมายที่ "แสดงขนาดไดเรกทอรี" ในเมนูคำสั่ง คุณยังสามารถ+Ctrlspace

ป้อนคำอธิบายรูปภาพที่นี่

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