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

วิธีหาไฟล์ว่าง (Empty Files) ในไดเรกทอรีบน Linux

บทช่วยสอนสั้นนี้ขยายจากคู่มือก่อนหน้าเกี่ยวกับคำสั่ง find ใน Linux คราวนี้ใช้หาไฟล์ "ว่าง" (Zero Byte)

อีกวันหนึ่ง ผมทำความสะอาด Linux Server และสังเกตว่าตามเวลา ผู้คนสร้างและทิ้งไฟล์ว่างไว้ ผมจึงตัดสินใจสร้าง Shell Script ที่จะวิ่งผ่านระบบและบอกว่ามีไฟล์แบบนี้กี่ไฟล์ พร้อม Path ของมัน

นี่คือคำสั่งง่ายๆ ที่ช่วยให้คุณรันการค้นหาแบบเดียวกันได้:

# 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 จะไม่นำ Symbolic Files มา รังสี เราใช้ Option -L เพื่อรวมเข้าด้วยกัน Option maxdepth บอกคำสั่งให้ค้นใน Main Directory เท่านั้น ห้ามลง Subdirectories type -f บอกให้ดูเฉพาะ Regular Files

หากรันคำสั่งเดียวกันโดยไม่มี Option maxdepth 1 จะค้นหาไฟล์ว่างในทุกไดเรกทอรีภายใน /home/stewiegriffin คุณยังสามารถเล่นกับ Option maxdepth และ mindepth หากต้องการควบคุมความลึกของการค้นหา นี่ช่วยมากหากคุณมีหลายระดับของไดเรกทอรีและไฟล์เยอะ

โดยปกติ หากคุณต้องการ คุณยังสามารถย้อนกลับการค้นหานี้ได้ คือ ขอให้คำสั่งหาไฟล์ที่ ไม่ใช่ไฟล์ว่าง ทำได้โดยใช้คำสั่งข้างต้นและเพิ่มเครื่องหมาย Exclamation Mark ในพารามิเตอร์ size:

# find -L /home/stewiegriffin -maxdepth 1 -type f ! -size 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 ของเรา