บทช่วยสอนสั้น ๆ นี้จะขยายจากคำแนะนำก่อนหน้าเกี่ยวกับการใช้คำสั่ง find ใน Linux คราวนี้เราใช้เพื่อค้นหาไฟล์ "ว่าง" (ศูนย์ไบต์)
เมื่อวันก่อน ฉันกำลังทำความสะอาดเซิร์ฟเวอร์ Linux ของฉัน และสังเกตเห็นว่าเมื่อเวลาผ่านไป ผู้คนได้สร้างและทิ้งไฟล์เปล่าไว้ ดังนั้นฉันจึงตัดสินใจสร้างเชลล์สคริปต์ที่จะทำงานผ่านระบบ และแจ้งให้เราทราบว่ามีไฟล์แบบนี้อยู่กี่ไฟล์พร้อมกับพาธของไฟล์เหล่านั้น
นี่เป็นคำสั่งง่ายๆ ที่จะช่วยให้คุณทำการค้นหาที่คล้ายกันได้:
# find -L /home/stewiegriffin -maxdepth 1 -type f -size 0
/home/stewiegriffin/temp.log
/home/stewiegriffin/brainstorm_notes.txt
/home/stewiegriffin/mail.log
/home/stewiegriffin/niptuck.html พี>
คำสั่งที่แสดงด้านบนนี้ใช้ค้นหาไฟล์ที่มีขนาด 0 . โดยค่าเริ่มต้น คำสั่ง find จะไม่รวมไฟล์สัญลักษณ์ ดังนั้นเราจึงใช้ -L ตัวเลือกที่จะรวมไว้ ตัวเลือก ความลึกสูงสุด บอกคำสั่งให้ค้นหาเฉพาะในไดเร็กทอรีหลักและไม่เข้าไปในไดเร็กทอรีย่อย พิมพ์ -f สั่งให้ดูเฉพาะไฟล์ปกติเท่านั้น
หากคุณเรียกใช้คำสั่งเดียวกันโดยไม่มี maxdepth 1 ตัวเลือกจะค้นหาไฟล์ว่างในไดเร็กทอรีทั้งหมดภายใน /home/stewiegriffin . คุณยังสามารถเล่นกับตัวเลือก ความลึกสูงสุด และ วิจารณญาณ หากคุณต้องการควบคุมความลึกของการค้นหา สิ่งนี้มีประโยชน์มากถ้าคุณมีไดเร็กทอรีหลายระดับและมีไฟล์ที่ต้องดำเนินการมากมาย
แน่นอน ถ้าคุณต้องการ คุณสามารถย้อนกลับการค้นหานี้และขอให้คำสั่งค้นหาไฟล์ที่ไม่ว่างเปล่าทั้งหมด สิ่งที่คุณต้องทำคือใช้คำสั่งด้านบนและเพิ่มเครื่องหมายอัศเจรีย์ใน ขนาด พารามิเตอร์:
# find -L /home/stewiegriffin -maxdepth 1 -type f ! -ขนาด 0
/home/stewiegriffin/apache.log
/home/stewiegriffin/how_to_log_your_actions.txt
/home/stewiegriffin/maillog.log
/home/stewiegriffin/niptuck01.html
/home/stewiegriffin/index.html
/home/stewiegriffin/test.php
เพียงระมัดระวังในขณะที่เรียกใช้สิ่งนี้ อาจพบไฟล์เปล่าจำนวนมาก
หากคุณไม่เข้าใจเมื่อเราเผยแพร่ครั้งแรก โปรดอ่านคำแนะนำเกี่ยวกับการใช้คำสั่ง find ใน Linux