Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

วิธีใช้ลินุกซ์ค้นหาคำสั่งพร้อมตัวอย่าง

นี่คือเครื่องมืออื่นสำหรับกล่องเครื่องมือค้นหาไฟล์ Linux ของคุณ – ระบุตำแหน่ง สั่งการ. ซึ่งจะอธิบายวิธีใช้งาน

ค้นหา คำสั่งทำขึ้นโดยเฉพาะสำหรับการค้นหาไฟล์และโฟลเดอร์ตามชื่อ ใช้งานง่ายและสามารถค้นหาไฟล์โดยใช้รูปแบบได้ สิ่งนี้มีประโยชน์หากคุณกำลังมองหาไฟล์ที่มีประเภท/นามสกุลไฟล์เฉพาะ

กำลังติดตั้ง ค้นหา

ค้นหา อาจไม่ได้รับการติดตั้งตามค่าเริ่มต้นในระบบของคุณ

ในการติดตั้งบนการแจกแจงแบบ Debian/Ubuntu ให้รัน:

sudo apt install mlocate

หรือบน Redhat/CentOS/Fedora:

sudo yum install mlocate

Linux ค้นหา ไวยากรณ์คำสั่ง

ค้นหา คำสั่งเป็นไปอย่างรวดเร็ว นั่นเป็นเพราะแทนที่จะค้นหาระบบไฟล์โดยตรง มันจะค้นหาฐานข้อมูลของไฟล์ที่มีการอัพเดทเป็นระยะๆ ทำให้การค้นหารวดเร็วขึ้นมาก

อย่างไรก็ตาม หมายความว่าหากไฟล์ถูกย้าย เปลี่ยนชื่อ หรือลบออกจากการรีเฟรชฐานข้อมูลครั้งล่าสุด ไฟล์นั้นจะยังคงปรากฏในผลลัพธ์

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

กำลังปรับปรุงฐานข้อมูล

วิธีอัปเดตฐานข้อมูลที่ใช้โดย ค้นหา เพื่อค้นหาไฟล์ เรียกใช้:

sudo updatedb

การค้นหาไฟล์

ไวยากรณ์สำหรับการค้นหาไฟล์โดยใช้ระบุตำแหน่ง เป็นดังนี้:

locate OPTIONS PATTERN

โปรดทราบว่า:

  • ตัวเลือก เป็นตัวเลือกและสามารถระบุได้จากตารางด้านล่างเพื่อแก้ไขการทำงานเริ่มต้นของ ระบุตำแหน่ง คำสั่ง
  • รูปแบบ คือชื่อไฟล์รูปแบบจะต้องตรงกันจึงจะถือว่าตรงกันสำหรับการค้นหา
  • ผลลัพธ์สำหรับไฟล์ที่ตรงกันจะมาจาก ระบบไฟล์ทั้งหมด โดยค่าเริ่มต้น – ไม่ใช่แค่ไดเร็กทอรีการทำงานปัจจุบัน
  • หากไม่มีการสร้างฐานข้อมูลสำหรับค้นหา คำสั่งที่จะใช้ คุณอาจได้รับแจ้งให้สร้าง
  • ค้นหา คำสั่งจะส่งคืนรหัสสถานะ 0 หากพบไฟล์ที่ตรงกันและ 1 หากไม่พบไฟล์หรือมีข้อผิดพลาดเกิดขึ้น

ตัวเลือกคำสั่ง

ต่อไปนี้คือตัวเลือกที่ใช้กันทั่วไปสำหรับค้นหา คำสั่งตรงจากเอกสารอย่างเป็นทางการ:

-b จับคู่เฉพาะชื่อฐานกับรูปแบบที่ระบุ
-c แทนที่จะเขียนชื่อไฟล์บนเอาต์พุตมาตรฐาน ให้เขียนจำนวนรายการที่ตรงกันเท่านั้น
-e พิมพ์เฉพาะรายการที่อ้างถึงไฟล์ที่มีอยู่ ณ เวลาที่กำหนดเท่านั้นที่เรียกใช้
-i ละเว้นความแตกต่างของตัวพิมพ์เมื่อจับคู่รูปแบบ
-l ออกได้สำเร็จหลังจากพบ LIMIT รายการ หากระบุอ็อพชัน –count การนับผลลัพธ์จะถูกจำกัดที่ LIMIT ด้วย
-P เมื่อตรวจสอบว่ามีไฟล์อยู่หรือไม่ (หากระบุตัวเลือก –existing) อย่าทำตามลิงก์สัญลักษณ์ต่อท้าย ซึ่งทำให้มีการรายงานลิงก์สัญลักษณ์ที่ใช้งานไม่ได้เหมือนไฟล์อื่นๆ
-q ไม่เขียนข้อความเกี่ยวกับข้อผิดพลาดที่พบขณะอ่านและประมวลผลฐานข้อมูล
-r ค้นหา regexp พื้นฐาน REGEXP ไม่อนุญาตให้ใช้ PATTERN หากใช้ตัวเลือกนี้ แต่สามารถระบุตัวเลือกนี้ได้หลายครั้ง
–regex ตีความ PATTERN ทั้งหมดเป็น regexp เพิ่มเติม

หากต้องการดูรายการตัวเลือกทั้งหมด คุณสามารถดูคู่มือผู้ใช้สำหรับคำสั่งค้นหาโดยเรียกใช้:

man locate

ค้นหา ตัวอย่างคำสั่ง

การใช้งานพื้นฐานที่สุดสำหรับระบุตำแหน่ง ฟังก์ชันคือการค้นหาไฟล์ที่ตรงกับชื่อที่กำหนด:

locate filename

รายการพาธไฟล์สำหรับแต่ละไฟล์ที่ตรงกันในระบบไฟล์จะถูกส่งคืน

ตามที่อธิบายไว้ข้างต้น ระบบไฟล์ไม่ได้ค้นหาโดยค้นหา – แต่มีการค้นหาฐานข้อมูลที่สร้างดัชนีระบบไฟล์และอัปเดตเป็นระยะ วิธีนี้ช่วยให้ทุกอย่างรวดเร็วแต่อาจทำให้เกิดปัญหาได้หากคุณเพิ่งย้ายไฟล์จำนวนมากไปรอบๆ เสร็จแล้วและยังไม่ได้อัปเดตฐานข้อมูล

ที่ -e ตัวเลือกจะบังคับให้ค้นหา เพื่อตรวจสอบว่าไฟล์ยังคงอยู่ในระบบไฟล์ก่อนที่จะเพิ่มลงในรายการผลลัพธ์:

locate -e filename

วิธีนี้ไม่ได้แก้ปัญหาของไฟล์ที่สร้างขึ้นใหม่หรือย้ายที่ไม่อยู่ในผลลัพธ์ (หรือปรากฏที่ตำแหน่งเดิม) แต่แก้ปัญหาไฟล์ที่ถูกลบซึ่งปรากฏในผลลัพธ์

สามารถจัดหารูปแบบเพื่อให้คุณสามารถค้นหาตามนามสกุลไฟล์ได้อย่างง่ายดาย:

locate *.mp3

ตัวอย่างข้างต้นจะคืนค่าไฟล์ mp3 ทั้งหมดที่พบในฐานข้อมูล

ค้นหา คำสั่งจะคำนึงถึงขนาดตัวพิมพ์โดยค่าเริ่มต้น – สามารถแทนที่ได้โดยใช้ -i ตัวเลือก:

locate -i FILENAME

คุณยังสามารถนับจำนวนไฟล์ที่ตรงกันโดยใช้ -c ตัวเลือก:

locate -c filename