du เป็นเครื่องมือบรรทัดคำสั่งที่มาพร้อมกับ Linux ซึ่งรายงานจำนวนพื้นที่ดิสก์ที่ใช้โดยไดเร็กทอรีและไฟล์ ย่อมาจาก “การใช้ดิสก์” du เป็นเครื่องมือหลักในการวิเคราะห์พื้นที่ดิสก์ในบรรทัดคำสั่ง
การใช้งานพื้นฐาน
du /path/to/directory
เรียกใช้ du
คำสั่งพร้อมไดเร็กทอรีเพื่อดูการวิเคราะห์ที่สมบูรณ์ของพื้นที่ดิสก์ที่ใช้โดยแต่ละไดเร็กทอรี แต่ละไดเร็กทอรีจะถูกแสดงตามลำดับในเอาต์พุตมาตรฐาน ดังนั้นไดเร็กทอรีขนาดใหญ่หรือการสแกนทั้งระบบอาจสร้างหลายหมื่นบรรทัดและใช้เวลานานมาก ด้วยเหตุนี้ โดยทั่วไปคำสั่ง du พื้นฐานจึงถูกเสริมด้วยแฟล็กที่ระบุด้านล่าง แฟล็กเหล่านี้สามารถรวมเข้ากับแฟล็กอื่นได้ แม้ว่าชุดค่าผสมบางค่าจะตัดกันเนื่องจากขัดแย้งกัน
การควบคุมเอาต์พุต
du -c
แสดงบรรทัดที่ด้านล่างของเอาต์พุต du เพื่อระบุจำนวนเนื้อที่ดิสก์ทั้งหมดที่ใช้โดยไดเร็กทอรีที่สแกน
du -s
แสดงเฉพาะข้อมูลสรุปของพื้นที่ดิสก์ทั้งหมดที่ใช้โดยไดเร็กทอรีที่ระบุ จะไม่มีการแสดงผลลัพธ์จนกว่าจะมีการคำนวณสรุป
du > du-report.txt
ผู้เชี่ยวชาญบรรทัดคำสั่งจะรู้จักคำสั่งนี้ แต่ไม่ใช่ทุกคนที่เป็นผู้เชี่ยวชาญ สิ่งนี้จะส่งออกผลลัพธ์ของคำสั่งไปยังไฟล์ข้อความในไดเร็กทอรีการทำงานปัจจุบันที่ชื่อว่า “du-report.txt”
du | less
วางจอแสดงผลไปยังโปรแกรมแก้ไขข้อความที่น้อยลง สร้างผลลัพธ์ที่อ่านง่ายขึ้น ซึ่งสามารถอ่านคร่าวๆ ได้โดยใช้ปุ่มลัดการนำทางที่น้อยกว่า
การเปลี่ยนขนาดการแสดง
โปรดทราบว่าโดยทั่วไปขนาดไฟล์จะถูกปัดเศษเมื่อมีการประกาศหน่วยเฉพาะ ตัวอย่างเช่น ไฟล์ขนาด 4KB จะแสดงเป็นศูนย์เมกะไบต์หาก -m
เรียกแฟล็ก ขณะที่ไฟล์ 750KB จะแสดงเป็น 1MB
du -h
แสดงในรูปแบบ "ที่มนุษย์อ่านได้" โดยมีขนาดที่เหมาะสมอยู่ในรายการ เช่น กิโลไบต์ เมกะไบต์ และกิกะไบต์ แทนที่จะเป็นขนาดบล็อกมาตรฐาน
du -k
จำนวนบล็อกที่แสดงในบล็อก 1024 ไบต์ (1 กิโลไบต์)
du -m
บล็อกการแสดงผลนับเป็น 1,048,576 ไบต์ (1 เมกะไบต์) บล็อก
du -g
บล็อกการแสดงผลนับเป็น 1,073,741,824 ไบต์ (1 กิกะไบต์) บล็อก
รวมไฟล์และลิงค์
du -L
ทำตามลิงก์สัญลักษณ์ (หรือ "การไม่อ้างอิง") ในบรรทัดคำสั่งและลำดับชั้นของไฟล์ มิฉะนั้น พื้นที่ที่ใช้โดยลิงก์สัญลักษณ์เองจะถูกรายงาน (โดยทั่วไปคือระบบไฟล์ขั้นต่ำสุด) แทนที่จะเป็นแผนผังไดเร็กทอรีที่ลิงก์สัญลักษณ์ชี้ไป
du -a
แสดงการใช้ดิสก์สำหรับไฟล์ทั้งหมด ไม่ใช่แค่ไดเร็กทอรี
du /path/to/file.txt
แสดงการใช้งานดิสก์ของไฟล์เฉพาะตามชื่อในคำสั่ง
ไม่รวมไฟล์ ไดเร็กทอรี และลิงก์
du -X FILE
ยกเว้นไฟล์ที่ตรงกับรูปแบบใดๆ ในสตริงที่ระบุ
du --exclude="*.o"
ยกเว้นไฟล์และไดเร็กทอรีย่อยตามที่ระบุโดยรูปแบบ ในตัวอย่างนี้ ไดเร็กทอรีทั้งหมดรวมทั้งสตริง “*.o” จะถูกข้ามไป โปรดทราบว่าสิ่งเหล่านี้คือรูปแบบเชลล์ ไม่ใช่นิพจน์ทั่วไป ดังนั้น อักขระควบคุมจะถูกจำกัดที่ * ซึ่งตรงกับสตริงของอักขระที่เป็นศูนย์หรือมากกว่า และ ? ซึ่งตรงกับอักขระตัวใดตัวหนึ่ง ซึ่งจะแยกไฟล์เหล่านี้ออกจากการคำนวณขนาดไดเร็กทอรี ถ้า -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, ... สำหรับกำลังมาตรฐานที่มากกว่า 1,000 ( กิโลไบต์ เมกะไบต์ กิกะไบต์ และอื่นๆ) นี่เป็นเครื่องมือที่มีประโยชน์ในการค้นหาไฟล์ที่ใหญ่ที่สุดในระบบของคุณด้วยคำสั่งเช่น du --threshold=1GB
.
du -d N
ตั้งค่าความลึกสูงสุดเป็น N โฟลเดอร์ แฟล็กนี้สามารถเป็นจำนวนเต็มบวกใดๆ ก็ได้ ด้วยการตั้งค่านี้ du จะสแกนหาไดเร็กทอรีย่อยสูงสุดสองไดเร็กทอรีในไดเร็กทอรีที่ระบุ หากมีไดเรกทอรีย่อยเพิ่มเติม ไดเรกทอรีย่อยเหล่านั้นจะไม่ถูกสแกนทีละรายการ แต่จะรวมค่าไว้ในโฟลเดอร์ที่รายงาน โปรดทราบว่า -d 0
จะรายงานผลเหมือนกับ -s
ธง.
ตัวอย่างเช่น พิจารณาพาธไดเร็กทอรี "dir1/dir2/dir3/dir4" ซึ่งประกอบด้วยไดเร็กทอรีหลักหนึ่งไดเร็กทอรีและสามไดเร็กทอรีย่อย ด้วยการตั้งค่า du เป็น du -d 2 dir1
จะสแกนลงไปที่ dir3 ขนาดของ dir3 จะรวมไฟล์ใน dir4 แม้ว่า dir4 จะไม่อยู่ในรายการแยกกัน
บทสรุป:Piping du
คำสั่ง du มีประโยชน์มากที่สุดเมื่อจับคู่กับยูทิลิตี้อื่นๆ เช่น คำสั่ง du -a / | sort -n -r | head -n 10
. การดำเนินการนี้จะค้นหาระบบไฟล์ทั้งหมดของคุณ (du -a /
) จัดเรียงผลลัพธ์ตามขนาด (sort -n -r
) แล้วแสดงเฉพาะผลลัพธ์สิบอันดับแรก (head -n 10
). เป็นทางลัดสำหรับไฟล์ที่ใหญ่ที่สุดสิบอันดับแรกในเครื่องของคุณ รวม du กับคำสั่งอื่น ๆ ผ่านไพพ์เพื่อสร้างผลลัพธ์ที่เป็นประโยชน์ยิ่งขึ้น