FIND COMMAND

FIND COMMAND

คำสั่ง find เป็นคำสั่งที่ใช้ในการค้นหา object ใดๆในเครื่องไม่ว่าจะเป็น link, file, directory ก็ตาม โดยผู้ใช้งานจะเป็นผู้ตั้งเงื่อนไขในการค้นหานั้นๆว่าต้องการ object ประเภทไหนและอย่างไร โดยเราสามารถใช้ -exec option ในการสั่งงานคำสั่งใดๆ ร่วมกับ object ที่เราค้นเจอได้อีกด้วย โดย find command จะมี syntax เป็น
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]

การใช้งาน File ในการหาไฟล์และ Directory

เราสามารถใช้ find ในการหาไฟล์ โดยระบุชื่อหรือสกุลของไฟล์ได้ โดยใช้เป็น
find /[path] -name [ชื่อที่ต้องการค้นหา]
เช่น หากเราต้องการค้นหาไฟล์ .log ภายใน path /var จะใช้คำสั่งเป็น
find /var -name "*.log"

การค้นหา Symbolic Link

เราสามารถใช้ -L option ในการหา Symbolic Link ได้ โดยจะใช้คำสั่งเป็น
find -L /var/

การค้นหาระบุด้วย type ของ object

เราสามารถค้นหาแบบระบุได้ว่าจะเป็น file หรือ directory ได้โดยใช้ -type option ซึ่งจะมี type ดังต่อไปนี้
  • bblock (buffered) special
  • ccharacter (unbuffered) special
  • ddirectory
  • pnamed pipe (FIFO)
  • fFile
  • lsymbolic  link;
  • ssocket
  • Ddoor (สำหรับ Solaris)
โดยหากเราต้องการค้นหาไฟล์ จะใช้คำสั่งเป็น
find /var/ -type f
หากต้องการค้นหาเป็น directory จะใช้คำสั่งเป็น
find /var/ -type d

การค้นหาโดยระบุจากเวลาการเปลี่ยนแปลงของ object

find command สามารถกรองผลลัพธ์ตามเวลาของการเปลี่ยนแปลงล่าสุดของไฟล์หรือ directory ได้ โดยใช้คำสั่งเป็น
find / -name "*.php" -mtime 7
จะเป็นการค้นหาไฟล์ php ที่มีการเปลี่ยนแปลงแก้ไขภายใน 7 วันหลังนี้

การค้นหาโดยระบุขนาดของไฟล์

เราสามารถกรองได้โดยระบุ size ของไฟล์โดยใช้ -size option โดยใช้คำสั่งเป็น
find /var -size <ขนาดของไฟล์>
เช่น ค้นหาไฟล์ 8 byte จะใช้คำสั่งเป็น
find /var -size 8c
โดยหน่วยที่ใช้กับ -size option จะเป็น
  • cคือ bytes
  • wคือ words
  • Kคือ kibibytes (KiB, หรือก็คือ 1024 bytes)
  • Mคือ mebibytes (MiB, หรือก็คือ 1024 * 1024 = 1048576 bytes)
  • Gคือ gibibytes (GiB, หรือก็คือ 1024 * 1024 * 1024 = 1073741824 bytes)

การค้นหาไฟล์ที่ user อ่านได้

เราสามารถใช้คำสั่ง -readable option เพื่อค้นหาไฟล์ที่ user ที่ใช้คำสั่งนี้สามารถอ่านได้ โดยใช้คำสั่งเป็น
find -readable /var

การค้นหาไฟล์ที่ user รันได้

เราสามารถใช้คำสั่ง -executable option เพื่อค้นหาไฟล์ที่ user ที่ใช้คำสั่งนี้สามารถรันได้ โดยใช้คำสั่งเป็น
find -executable /var

การค้นหาไฟล์ที่ user ใดๆเป็นเจ้าของ

เราสามารถใช้คำสั่ง -user option เพื่อระบุเจ้าของไฟล์ที่เราต้องการค้นหาได้ และ -group option เพื่อค้นหาไฟล์ที่ group ใดๆเป็นเจ้าของ โดยใช้คำสั่งเป็น
find /var -user target -group target
จากตัวอย่างจะเป็นการค้นหาไฟล์ที่มี user target และ group เป็น target นั่นเอง

Comments

Popular Posts