[hide=5]คำสั่ง find ครับ เครื่องมืออันทรงพลังสำหรับ Unix admin ครับ ไม่ใช่แค่การค้นหาอย่างเดียวครับ ผมได้เพิ่มตัวอย่างที่ใช้กับ Shell Script ของผมเข้าไปด้วยนิดนึง ลองอ่านดูครับ

หลายคนอาจจะเคยมีปัญหา เรื่องการค้นหาข้อมูลบน Unix เนื่องจากไม่มี tool สะดวกให้ใช้เหมือน Windows อันที่จริงแล้ว Unix หรือ Unix-Like ทั้งหลาย มาพร้อมกับเครื่องมือหลายอย่าง แต่เราอาจจะต้องนำมาประกอบกัน เพื่อใช้ให้ถูกต้องเท่านั้นเอง เพื่อไม่ให้เสียเนื้อที่ มาศึกษากันเลยละกันครับ เราจะเริ่มต้นด้วยการใช้ find ง่ายๆ แล้วค่อยๆ ลงรายละเอียดไปยังการใช้ร่วมกับคำสั่งอื่นๆ


ค้นหาด้วย Find
find [path ...] [expression]

ง่ายๆ ตรงไปตรงมาคือ find ตามด้วย path เช่น find /home จะหาไฟล์ที่อยู่ใน /home ทั้งหมด คราวนี้ลองใส่เงี่อนไขเข้าไปง่าย เช่น หาไฟล์ที่ลงท้ายด้วย .c เราก็ระบุ option -name เข้าไปเป็น find /home -name "*.c" เป็นต้น

เนื่องจากธรรมชาติของ Unix ซึ่งเขียนด้วยภาษา C จะเป็น case sensitive filename ดังนั้น เราอาจจะเลือกใช้ -iname แทน -name เมื่อไม่สนใจ case ก็ได้ เช่น find /home -name "*.c" จะแสดงทั้ง test.c และ test.C เป็นต้น

นอกจากนี้ยังมี -lname และ -ilname สำหรับกรณีการค้นหา file ที่เป็น symbolic link ด้วย (สำหรับผู้ที่ไม่คุ้นเคย symbolic link คือการสร้าง file ที่ใช้/อ้างอิงไปยังไฟล์อื่น คล้ายกับ short-cut ของ windows)

นอกจากนี้ ยังมีการใส่เงื่อนไขให้ค้นหาตามวันที่ -[acm]time +/-n (n คือจำนวนวัน) เช่น find /home -atime +5 (ในรายละเอียด -atime หมายถึง มีการอ่