หัวข้อ: Solaris 2.6 (User)
ชื่อเรื่อง: การจัดการไฟล์และไดเรกทอรี -> การค้นหาไฟล์
พิมพ์: 21 ธันวาคม 2542
update: 22 ธันวาคม 2542

การค้นหาไฟล์
[Previous Page] [Next page] [Section contents page]

ในระบบปฎิบัติการ Unix เราสามารถหาค้นหาไฟล์ที่ต้องการได้ ถ้าเทียบกับ dos ก็คงจะคล้าย ๆ เราบอกว่า dir *.bat /s อะไรทำนองนั้นแหละครับ นี่หมายถึงการค้น หาไฟล์ อะไรก็ได้ ที่มีนามสกุล .bat ใน unix ก็มีคำสั่งในการค้นหาชื่อไฟล์ ที่เราต้องการได้เหมือนกัน คำสั่งนั้นคือ find การทำงานของคำสั่ง เขาจะเริ่มค้นหาไฟล์ ในไดเรกทอรีที่เราระบุ และวิธีการค้นหา ไฟล์ที่ต้องการก็จะ ค้นหาไฟล์ตามออปชั่นที่เราระบุ รูปแบบของคำสั่งเป็นดังนี้ครับ

$find directory options

  directory ในที่นี้คือเราระบุให้เขาว่า ให้เขาเริ่มหาไฟล์ที่เราต้องการจากไดเรกทอรีไหน
  option ในที่นี้คือ ออปชั่นต่าง ๆ ที่เราระบุลงไป เพื่อให้ ระบบปฎิบัติการ เขาหาไฟล์ตามที่เราต้องการนั่นเอง

ระบบปฎิบัติการเขาจะค้นหาไฟล์ ตามออปชั่นที่เราระบุลงไป โดยการระบุออปชั่นนั้นเราสามารถ ระบุได้หลาย ๆ ตัวครับ ยิ่งเราระบุ ออปชั่นมากขึ้นเท่าใด ผลที่ได้ก็จะได้ไฟล์ที่ใกล้เคียงกับไฟล์ที่เราอยากได้มากขึ้น เรียกว่า ยิ่งเราระบุออปชั่นมากขึ้นเท่าใด ผลที่ได้ก็จะยิ่งแคบลง แคบลงเท่านั้นครับ

ออปชั่นต่าง ๆ มีดังนี้ครับ (คุณสามารถอ่านรายละเอียดของคำสั่งได้ จาก การ ใช้คำสั่ง man ดูจากเครื่องเลยก็ได้ครับ)

-name filename
เป็นการระบุชื่อไฟล์ ให้ระบบฯ เขาค้นหาชื่อไฟล์ตามที่เราระบุลงไปครับ ในกรณีที่เรา ระบุชื่อไฟล์ แล้วใช้ wildcard character ให้เราใช้เครื่องหมาย single quotes (') คร่อมชื่อไฟล์ นั้นไว้ เช่นผมต้องการหาไฟล์ทุกไฟล์ที่ลงท้ายด้วย 's' และให้ระบบฯ เขา เริ่มหาไฟล์จากไดเรกทอรีปัจจุบันที่ผมอยู่ ใช้คำสั่งได้ดังนี้ครับ

$find . -name '*s' -print
./programs
./programs/graphics
./programs/graphics/gks
./src/gks
$

ออปชั่น -print เป็นออปชั่นที่เราใส่ลงไปเพื่อให้ ระบบฯเขาแสดงผมออกมาที่ หน้าจอให้เราด้วย
-user userid
ออปชั่นนี้เป็นการระบุ หาไฟล์ ที่ user คนที่เราระบุเป็นเจ้าของเท่านั้น ในการระบุ เราสามารถใช้ชื่อของ user คนนั้น หรือจะเป็นเลขประจำตัวของเขาก็ได้
-group group
เลือกไฟล์ที่ กลุ่มที่เราระบุลงไป (ในออปชั่น) เป็นเจ้าของ
-m -time n
เลือกไฟล์ที่มีการแก้ไขภายใน n วัน
-newer checkfile
เลือกไฟล์ที่มีการแก้ครั้งล่าสุดหลังจากไฟล์ที่เราระบุลงไป
-exec command '{}' \;
เมื่อเจอไฟล์ที่ต้องการแล้ว ให้ระบบเขาประมวลผลอย่างไร กับไฟล์ที่เขาเจอ

ออปชั่นแต่ละตัวนั้น เราสามารถนำมาใช้ร่วมกันได้ครับ โดยการใช้ร่วมกันนั้น ก็ให้ใช้วงเล็บ ครอบออปชั่นที่เราต้องการ ตัวอย่างเช่น

$find . \( -name AAA -o -name  BBB \)  -print
./AAA
./BBB

ในตัวอย่างผมต้องการหาไฟล์ที่ชื่อ AAA หรือ (-o) BBB ก็สามารถใช้ได้ดังตัวอย่างครับ

ในตัวอย่างถัดไปเป็นตัวอย่างการใช้ออปชั่น -exec ในที่นี้ผมต้องการค้นหาไฟล์ที่ชื่อ junk หรือ dummy เสร็จแล้วเมื่อเจอไฟล์ใด ในสองไฟล์นี้ ก็ให้ลบ ไฟล์นั้น ๆ ทิ้งซะ สามารถใช้คำสั่งได้ดังนี้ครับ

$find . \( -name junk -o -name dummy  \)  -exec rm '{} \;

[Previous Page] [Next page] [Section contents page]


[ณ บ้านไร่ชายทุ่ง]

ข้าวในแปลงอื่น ๆ

กลับแปลง Solaris 2.6 สำหรับผู้ใช้งานทั่วไป

สงวนลิขสิทธิ์(c) 1999 ณ บ้านไร่ชายทุ่ง
1