บทความนี้อธิบายสิ่งที่ Linux ค้นหา คำสั่งคือ เสนอทางลัดตำแหน่งการค้นหา นิพจน์ทั่วไป ตัวอย่างการใช้งาน รูปแบบ วิธีส่งเอาต์พุตจากคำสั่ง find ไปยังไฟล์ และวิธีค้นหาและดำเนินการคำสั่งกับไฟล์
ใช้คำสั่ง 'find' เพื่อค้นหาไฟล์ใน Linux
คำสั่งที่ใช้ค้นหาไฟล์เรียกว่า find .
ไวยากรณ์พื้นฐานของคำสั่ง find มีดังนี้:
เส้นทางที่ใช้งานอยู่ในปัจจุบันจะทำเครื่องหมายตำแหน่งการค้นหาโดยค่าเริ่มต้น หากต้องการค้นหาทั้งไดรฟ์ ให้พิมพ์ดังต่อไปนี้:
อย่างไรก็ตาม หากคุณต้องการค้นหาโฟลเดอร์ที่คุณอยู่ ให้ใช้ไวยากรณ์ต่อไปนี้:
เมื่อคุณค้นหาตามชื่อทั่วทั้งไดรฟ์ ให้ใช้ไวยากรณ์ต่อไปนี้:
- ส่วนแรกของคำสั่ง find คือคำสั่ง find
- ส่วนที่สองคือจุดเริ่มต้นการค้นหา
- ส่วนต่อไปคือนิพจน์ที่กำหนดสิ่งที่จะค้นหา
- ส่วนสุดท้ายคือชื่อไฟล์ที่จะค้นหา
ในการเข้าถึงเชลล์ (บางครั้งเรียกว่าหน้าต่างเทอร์มินัล) ในการแจกแจงส่วนใหญ่ ให้คลิกไอคอนที่เกี่ยวข้องหรือกด Ctrl+Alt+T .
ค้นหาทางลัดตำแหน่ง
อาร์กิวเมนต์แรกหลังคำสั่ง find คือตำแหน่งที่คุณต้องการค้นหา แม้ว่าคุณอาจระบุไดเร็กทอรีเฉพาะ คุณสามารถใช้อักขระเมตาเพื่อทำหน้าที่แทนได้ อักขระเมตาสามตัวที่ทำงานกับคำสั่งนี้ ได้แก่:
- ระยะเวลา (.) :ระบุโฟลเดอร์ปัจจุบันและโฟลเดอร์ที่ซ้อนกันทั้งหมด
- ฟอร์เวิร์ดสแลช (/) :ระบุทั้งระบบไฟล์
- ตัวหนอน (~) :ระบุโฮมไดเร็กทอรีของผู้ใช้ที่ใช้งานอยู่
การค้นหาระบบไฟล์ทั้งหมดอาจทำให้เกิดข้อผิดพลาดในการปฏิเสธการเข้าถึง เรียกใช้คำสั่งด้วยสิทธิ์ระดับสูง (โดยใช้คำสั่ง sudo) หากคุณต้องการค้นหาในที่ที่บัญชีมาตรฐานของคุณไม่สามารถเข้าถึงได้ตามปกติ
นิพจน์ที่คุณสามารถใช้ได้
นิพจน์ทั่วไปที่คุณจะใช้คือ -name ซึ่งค้นหาชื่อไฟล์หรือโฟลเดอร์
อย่างไรก็ตาม มีนิพจน์อื่นๆ ที่คุณสามารถใช้ได้:
- -อามิน n :ไฟล์ถูกเข้าถึงล่าสุด +/- n นาทีที่แล้วขึ้นอยู่กับว่าคุณป้อนเวลาอย่างไร
- -anewer :ใช้ไฟล์อื่นเป็นข้อมูลอ้างอิงเพื่อค้นหาไฟล์ใด ๆ ที่มีการเข้าถึงล่าสุดและไฟล์อ้างอิง
- -เวลา n :ไฟล์มีการเข้าถึงล่าสุดมากกว่า/น้อยกว่า n วันที่ผ่านมาขึ้นอยู่กับว่าคุณป้อนเวลาเป้าหมาย (n) อย่างไร
- -cmin n :ไฟล์ถูกแก้ไขล่าสุด n นาทีที่แล้ว ขึ้นอยู่กับว่าคุณป้อนเวลาเป้าหมายอย่างไร (n)
- -กรงเล็บ :ใช้ไฟล์อื่นเป็นข้อมูลอ้างอิงเพื่อค้นหาไฟล์ที่เข้าถึงล่าสุดและไฟล์อ้างอิง
- -ctime n :ไฟล์มีการเข้าถึงล่าสุดมากกว่า/น้อยกว่า n วันที่ผ่านมาขึ้นอยู่กับว่าคุณป้อนเวลาเป้าหมาย (n) อย่างไร
- ว่างเปล่า : ไฟล์ว่างเปล่า
- -ปฏิบัติการได้ :ไฟล์นี้สามารถใช้งานได้
- -เท็จ :เท็จเสมอ
- -ประเภท fstype :ไฟล์อยู่ในระบบไฟล์ที่ระบุ
- -gid n :ไฟล์อยู่ในกลุ่มที่มี ID n .
- -ชื่อกลุ่ม :ไฟล์อยู่ในกลุ่มที่มีชื่อ
- รูปแบบ ilname :ค้นหาลิงก์สัญลักษณ์แต่ไม่ต้องสนใจกรณีนี้
- -รูปแบบ iname :ค้นหาไฟล์แต่ไม่ต้องสนใจกรณีนี้
- -inum n :ค้นหาไฟล์ที่มีไอโหนดที่ระบุ
- เส้นทางไอพาธ :ค้นหาเส้นทางแต่ละเว้นกรณี
- นิพจน์ -iregex :ค้นหานิพจน์แต่ละเว้นกรณี
- -ลิงค์ n :ค้นหาไฟล์ที่มีจำนวนลิงก์ที่ระบุ
- -lname :ค้นหาลิงก์สัญลักษณ์
- -mmin n :ไฟล์ถูกเข้าถึงล่าสุด +/- n นาทีที่แล้วขึ้นอยู่กับว่าคุณป้อนเวลาอย่างไร
- -mtime n :ไฟล์มีการเข้าถึงล่าสุดมากกว่า/น้อยกว่า n วันที่ผ่านมาขึ้นอยู่กับว่าคุณป้อนเวลาเป้าหมาย (n) อย่างไร
- -ชื่อ :ค้นหาไฟล์ที่มีชื่อที่ระบุ
- -ชื่อใหม่กว่า :ค้นหาไฟล์ที่แก้ไขใหม่กว่าไฟล์อ้างอิงที่ให้มา
- -nogroup :ค้นหาไฟล์ที่ไม่มีรหัสกลุ่ม
- -nouser :ค้นหาไฟล์ที่ไม่มีผู้ใช้แนบมา
- เส้นทางเส้นทาง :ค้นหาเส้นทาง
- -อ่านได้ :ค้นหาไฟล์ที่สามารถอ่านได้
- -รูปแบบ regex :ค้นหาไฟล์ที่ตรงกับนิพจน์ทั่วไป
- ประเภท-ประเภท :ค้นหาประเภทเฉพาะ ประเภทตัวเลือกได้แก่:
- -type d :ไดเร็กทอรี
- -type f :ไฟล์
- -type l :ซิมลิงค์
- -uid uid :รหัสผู้ใช้ที่เป็นตัวเลขของไฟล์เหมือนกับ uid
- -ชื่อผู้ใช้ :ไฟล์นี้เป็นของผู้ใช้ที่ระบุ
- -เขียนได้ :ค้นหาไฟล์ที่สามารถเขียนได้
ตัวอย่างการใช้งานคำสั่ง Find
คุณสามารถใช้คำสั่ง find ได้ด้วยวิธีต่อไปนี้
วิธีค้นหาไฟล์ที่มีการเข้าถึงมากกว่าจำนวนวันที่กำหนด
วิธีค้นหาไฟล์ทั้งหมดภายในโฟลเดอร์เริ่มต้นของคุณที่เข้าถึงมานานกว่า 100 วันที่ผ่านมา:
วิธีค้นหาไฟล์และโฟลเดอร์ว่าง
วิธีค้นหาไฟล์และโฟลเดอร์ว่างทั้งหมดในระบบของคุณ:
วิธีค้นหาไฟล์ปฏิบัติการทั้งหมด
วิธีค้นหาไฟล์ปฏิบัติการทั้งหมดในคอมพิวเตอร์ของคุณ:
วิธีค้นหาไฟล์ที่อ่านได้ทั้งหมด
วิธีค้นหาไฟล์ทั้งหมดที่สามารถอ่านได้:
ใช้รูปแบบเพื่อค้นหาไฟล์
เมื่อคุณค้นหาไฟล์ คุณสามารถใช้รูปแบบได้ ตัวอย่างเช่น ค้นหาไฟล์ทั้งหมดที่มีนามสกุล MP3:
คุณอาจต้องหลีกเลี่ยงเครื่องหมายดอกจัน ทั้งนี้ขึ้นอยู่กับเชลล์ที่คุณใช้ หากคุณเรียกใช้คำสั่งและไม่ได้รับผลลัพธ์ตามที่คาดไว้ ให้ลองอ้างอิงรูปแบบทั้งหมดเพื่อหลีกเลี่ยงเครื่องหมายดอกจัน เช่น find / -name '*.mp3'
วิธีการส่งผลลัพธ์จากคำสั่งค้นหาไปยังไฟล์
ปัญหาหลักของคำสั่ง find คือบางครั้งอาจส่งกลับผลลัพธ์มากเกินไปที่จะดูในครั้งเดียว ไพพ์เอาต์พุตไปยังคำสั่ง tail หรือเอาต์พุตบรรทัดไปยังไฟล์ดังนี้:
วิธีค้นหาและดำเนินการคำสั่งกับไฟล์
หากต้องการค้นหาและแก้ไขไฟล์พร้อมกัน ให้พิมพ์:
คำสั่งด้านบนจะค้นหาไฟล์ชื่อ filename จากนั้นเรียกใช้โปรแกรมแก้ไข nano สำหรับไฟล์ที่พบ
นาโนคือชื่อของคำสั่ง ไม่ใช่ส่วนที่แน่นอนของไวยากรณ์นี้