Android

ค้นหาไฟล์ขนาดใหญ่ใน linux

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ

สารบัญ:

Anonim

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

บทช่วยสอนนี้อธิบายวิธีค้นหาไฟล์และไดเรกทอรีที่ใหญ่ที่สุดในระบบ Linux โดยใช้คำสั่ง find และ du

ค้นหาไฟล์ขนาดใหญ่โดยใช้คำสั่ง find

คำสั่ง find เป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในคลังข้อมูลผู้ดูแลระบบ Linux ช่วยให้คุณค้นหาไฟล์และไดเรกทอรีตามเกณฑ์ต่าง ๆ รวมถึงขนาดไฟล์

ตัวอย่างเช่นหากต้องการค้นหาไฟล์ที่มีขนาดใหญ่กว่า 100MB ในไดเรกทอรีการทำงานปัจจุบันคุณจะใช้คำสั่งต่อไปนี้:

sudo find. -xdev -type f -size +100M แทนที่ ด้วยพา ธ ไปยังไดเรกทอรีที่คุณต้องการค้นหาไฟล์ที่ใหญ่ที่สุด

ผลลัพธ์จะแสดงรายการไฟล์โดยไม่มีข้อมูลเพิ่มเติมใด ๆ

/var/lib/libvirt/images/centos-7-desktop_default.img /var/lib/libvirt/images/bionic64_default.img /var/lib/libvirt/images/win10.qcow2 /var/lib/libvirt/images/debian-9_default.img /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img /var/lib/libvirt/images/centos-7_default.img

คำสั่ง find ยังสามารถใช้ร่วมกับเครื่องมืออื่น ๆ เช่น ls หรือ sort เพื่อดำเนินการกับไฟล์เหล่านั้น

ในตัวอย่างด้านล่างเราจะส่งผ่านผลลัพธ์ของคำสั่ง find ไปยัง ls ซึ่งจะพิมพ์ขนาดของแต่ละไฟล์ที่พบแล้วไปป์ที่เอาต์พุตไปยังคำสั่ง sort เพื่อจัดเรียงตามคอลัมน์ที่ 5 ซึ่งเป็นขนาดไฟล์

find. -xdev -type f -size +100M -print | xargs ls -lh | sort -k5, 5 -h -r

ผลลัพธ์จะมีลักษณะดังนี้:

-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2 -rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img -rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img -rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img -rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img -rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img

หากเอาต์พุตมีบรรทัดข้อมูลจำนวนมากคุณสามารถใช้คำสั่ง head เพื่อพิมพ์เฉพาะ 10 บรรทัดแรก:

find. -xdev -type f -size +100M -print | xargs ls -lh | sort -k5, 5 -h -r | head

ลองแบ่งคำสั่ง:

  • find. -xdev -type f -size +100M -print find. -xdev -type f -size +100M -print - ค้นหาเฉพาะไฟล์ ( -type f ) ในไดเรกทอรีการทำงานปัจจุบัน ( . ) ที่มีขนาดใหญ่กว่า 100MB ( -size +100M ) อย่าลงไดเรกทอรีในระบบไฟล์อื่น ๆ ( -xdev ) และพิมพ์ชื่อไฟล์แบบเต็มบนเอาต์พุตมาตรฐานตามด้วยบรรทัดใหม่ ( -print ) xargs ls -lh - เอาต์พุตของคำสั่ง find ถูก ls -lh ไปที่ xargs ซึ่งเรียกใช้งาน ls -lh ที่จะพิมพ์เอาต์พุตในรูปแบบรายการที่มนุษย์อ่านได้แบบยาว sort -k5, 5 -h -r - เรียงลำดับบรรทัดตามคอลัมน์ที่ 5 ( -k5, 5 ) เปรียบเทียบค่าในรูปแบบที่มนุษย์สามารถอ่านได้ ( -h ) และย้อนกลับผลลัพธ์ ( -r ) head : พิมพ์เฉพาะ 10 บรรทัดแรกของเอาต์พุต piped

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

ค้นหาไฟล์และไดเรกทอรีขนาดใหญ่โดยใช้คำสั่ง du

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

คำสั่งต่อไปนี้จะพิมพ์ไฟล์และไดเรกทอรีที่ใหญ่ที่สุด:

du -ahx. | sort -rh | head -5

คอลัมน์แรกมีขนาดของไฟล์และชื่อไฟล์ที่สอง:

55G. 24G./.vagrant.d/boxes 24G./.vagrant.d 13G./Projects 5.2G./.minikube

คำอธิบายของคำสั่ง:

  • du -ahx. : ประมาณการการใช้พื้นที่ดิสก์ในไดเรกทอรีการทำงานปัจจุบัน ( . ), นับทั้งไฟล์และไดเรกทอรี ( a ), ขนาดการพิมพ์ในรูปแบบที่มนุษย์สามารถอ่านได้ ( h ) และข้ามไดเรกทอรีในระบบไฟล์ ( x ) sort -rh : เรียงลำดับบรรทัดโดยการเปรียบเทียบค่าในรูปแบบที่มนุษย์สามารถอ่านได้ ( -h ) และกลับผลลัพธ์ ( -r ) head -5 : พิมพ์ได้เพียง 5 บรรทัดแรกของเอาต์พุตที่ส่งไปป์

คำสั่ง du รวมถึงตัวเลือกอื่น ๆ ที่คุณสามารถใช้เพื่อปรับแต่งเอาต์พุตของการใช้พื้นที่ดิสก์

ข้อสรุป

การค้นหาไฟล์ขนาดใหญ่นั้นมีประโยชน์มากเมื่อดิสก์ของคุณเต็มและคุณต้องการให้มันว่าง

ตอนนี้คุณได้พบไฟล์ที่ใหญ่ที่สุดในระบบของคุณแล้วคุณอาจต้องการอ่านคำแนะนำของเราเกี่ยวกับวิธีการลบไฟล์และไดเรกทอรีโดยใช้ Linux Command Line

ค้นหาเทอร์มินัลดิสก์