Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux

du เป็นเครื่องมือบรรทัดคำสั่งที่มาพร้อมกับ Linux ซึ่งรายงานปริมาณพื้นที่ดิสก์ที่ใช้โดยไดเรกทอรีและไฟล์ ย่อมาจาก "disk usage" du เป็นเครื่องมือหลักสำหรับวิเคราะห์พื้นที่ดิสก์ในบรรทัดคำสั่ง

การใช้งานพื้นฐาน

du /path/to/directory

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

การควบคุมเอาต์พุต

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux
du -c

แสดงบรรทัดด้านล่างของเอาต์พุต du เพื่อระบุปริมาณพื้นที่ดิสก์ทั้งหมดที่ใช้โดยไดเรกทอรีที่สแกน

du -s

แสดงเฉพาะสรุปของพื้นที่ดิสก์ทั้งหมดที่ใช้โดยไดเรกทอรีที่ระบุ ไม่จะมีเอาต์พุตแสดงจนกว่าจะคำนวณสรุปเสร็จ

du > du-report.txt

ผู้เชี่ยวชาญบรรทัดคำสั่งจะรู้จักคำสั่งนี้ แต่ไม่ใช่ทุกคนเป็นโปร นี่จะส่งผลลัพธ์ของคำสั่งไปยังไฟล์ข้อความในไดเรกทอรีทำงานปัจจุบันชื่อ "du-report.txt"

du | less

ส่งการแสดงผลไปยังตัวแก้ไขข้อความ less สร้างผลลัพธ์ที่อ่านง่ายขึ้นสามารถสกิมได้ด้วยลัดลัดการนำทางของ less

การเปลี่ยนการแสดงขนาด

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux

โปรดทราบว่าขนาดไฟล์โดยทั่วไปจะถูกปัดเศษเมื่อมีการประกาศหน่วยเฉพาะ ตัวอย่างเช่น ไฟล์ 4KB จะแสดงว่ายืดพื้นที่ 0 เมกะไบต์ หากเรียกแฟล็ก -m ในขณะที่ไฟล์ 750KB จะแสดงเป็น 1MB

du -h

แสดงในรูปแบบ "human readable" พร้อมขนาดที่เหมาะสม เช่น กิโลไบต์ เมกะไบต์ และกิกะไบต์ แทนขนาดบล็อกมาตรฐาน

du -k

แสดงจำนวนบล็อกในบล็อก 1024 ไบต์ (1 กิโลไบต์)

du -m

แสดงจำนวนบล็อกในบล็อก 1,048,576 ไบต์ (1 เมกะไบต์)

du -g

แสดงจำนวนบล็อกในบล็อก 1,073,741,824 ไบต์ (1 กิกะไบต์)

การรวมไฟล์และลิงก์

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux
du -L

ติดตาม (หรือ "dereference") symbolic links ในบรรทัดคำสั่งและลำดับชั้นไฟล์ มิฉะนั้น พื้นที่ที่ถูกใช้โดย symbolic link เองจะถูกรายงาน (โดยปกติเป็นค่าต่ำสุดของระบบไฟล์) แทนที่จะเป็นต้นไม้ไดเรกทอรีที่ symbolic link ชี้ไป

du -a

แสดงการใช้ดิสก์สำหรับไฟล์ทั้งหมด ไม่ใช่แค่ไดเรกทอรี

du /path/to/file.txt

แสดงการใช้ดิสก์ของไฟล์เฉพาะเจาะจง ตามที่ระบุในคำสั่ง

การยกเว้นไฟล์ ไดเรกทอรี และลิงก์

คำสั่ง du (Disk Usage) ที่มีประโยชน์ที่สุดใน Linux
du -X FILE

ยกเว้นไฟล์ที่ตรงกับรูปแบบใดๆ ในสตริงที่ระบุ

du --exclude="*.o"

ยกเว้นไฟล์และไดเรกทอรีย่อยตามที่ระบุโดยรูปแบบ ในตัวอย่างนี้ ไดเรกทอรีทั้งหมดที่มีสตริง "*.o" จะถูกข้าม โปรดทราบว่านี่คือ shell patterns ไม่ใช่ regular expressions ดังนั้น ตัวควบคุมจำกัดเพียง * ซึ่งจับคู่สตริงที่มีความยาวศูนย์หรือมากกว่า และ ? ซึ่งจับคู่ตัวอักษรเพียงตัวเดียว นี่จะยกเว้นไฟล์เหล่านี้ออกจากการคำนวณขนาดไดเรกทอรี หากใช้แฟล็ก -a ไฟล์ที่ยกเว้นจะถูกข้ามในเอาต์พุตที่ได้

du --threshold=SIZE

ยกเว้นรายการที่เล็กกว่า SIZE หากเป็นบวก หรือรายการที่ใหญ่กว่า SIZE หากเป็นลบ SIZE เป็นจำนวนเต็มและรับหน่วย (ทางเลือก) ตัวเช่น --threshold=1MB จะข้ามไฟล์ทั้งหมดที่เล็กกว่า 1 เมกะไบต์ (1000^2 ไบต์) หน่วยรวมถึง K, M, G, T, P, E, Z, Y สำหรับกำลังของ 1024 (kibibyte, mebibyte, gibibyte, และอื่นๆ) หรือ KB, MB, GB, TB, … สำหรับกำลังของ 1000 ที่มาตรฐานมากขึ้น (kilobyte, megabyte, gigabyte, และอื่นๆ) นี่อาจเป็นเครื่องมือที่มีประโยชน์สำหรับการหาไฟล์ขนาดใหญ่ที่สุดบนระบบของคุณด้วยคำสั่งอย่าง du --threshold=1GB

du -d N

ตั้งค่าความลึกสูงสุดเป็น N โฟลเดอร์ แฟล็กนี้สามารถรับจำนวนเต็มบวกใดๆ ได้ ด้วยการตั้งค่านี้ du จะสแกนลงไปสูงสุด 2 ไดเรกทอรีย่อยในไดเรกทอรีที่ระบุ หากมีไดเรกทอรีย่อยเพิ่มเติม พวกมันจะไม่ถูกสแกนแยกต่างหาก มากกว่านั้น ค่าของพวกมันจะถูกรวมไว้ในโฟลเดอร์ที่รายงาน โปรดทราบว่า -d 0 จะรายงานผลลัพธ์เดียวกับแฟล็ก -s

ตัวอย่างเช่น พิจารณาเส้นทางไดเรกทอรี "dir1/dir2/dir3/dir4" ซึ่งมีไดเรกทอรีพาเรนต์หนึ่งและไดเรกทอรีย่อยสาม ตั้งค่า du เป็น du -d 2 dir1 จะสแกนลงถึง dir3 ขนาดของ dir3 จะรวมไฟล์ใน dir4 แม้ dir4 จะไม่ได้แสดงแยกต่างหาก

สรุป: การ Pipe du

คำสั่ง du มีประโยชน์สูงสุดเมื่อจับคู่กับยูทิลิตี้อื่นๆ เช่นคำสั่ง du -a / | sort -n -r | head -n 10 นี่จะค้นหา filesystem ทั้งหมดของคุณ (du -a /) เรียงลำดับผลลัพธ์ตามขนาด (sort -n -r) และแสดงเฉพาะ 10 อันดับแรก (head -n 10) มันเป็นทางลัดสำหรับ 10 ไฟล์ขนาดใหญ่ที่สุดบนเครื่องของคุณ รวม du กับคำสั่งอื่นๆ ผ่าน pipe เพื่อสร้างผลลัพธ์ที่มีประโยชน์มากขึ้น