
มีสองสามวิธีที่คุณสามารถค้นหาและค้นหาไฟล์จากเทอร์มินัลใน Linux และ find
, locate
, which
และ whereis
เป็นคำสั่งที่ใช้กันทั่วไปในการทำเช่นนั้น ให้เราดูคำสั่งค้นหาทั้งสี่นี้ ความเหมือนและความแตกต่างของคำสั่งเหล่านี้
1. หา
แนวทางตรงไปตรงมาในการค้นหาไฟล์ภายในไดเร็กทอรีที่ระบุคือการใช้ find
สั่งการ. หากไม่ได้ระบุไดเร็กทอรีที่จะทำการค้นหาไว้อย่างชัดเจน การค้นหาจะดำเนินการในไดเร็กทอรีปัจจุบัน
ภาพหน้าจอต่อไปนี้แสดงวิธีการดำเนินการค้นหาภายในไดเรกทอรีปัจจุบัน (.) สำหรับชื่อไฟล์ทั้งหมดที่ลงท้ายด้วยนามสกุล .txt

การค้นหายังสามารถทำได้ตามการประทับเวลา สิทธิ์ของไฟล์ ขนาดไฟล์ ประเภทไฟล์ เจ้าของไฟล์ ฯลฯ สามารถใช้นิพจน์ทั่วไปเพื่อควบคุมพารามิเตอร์การค้นหาได้ คำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับ find
คำสั่งสามารถพบได้ที่นี่
2. ค้นหา
คำสั่งนี้เป็นอีกวิธีหนึ่งในการค้นหาไฟล์ตามชื่อ คำสั่งก่อนหน้านี้ค้นหาไดเร็กทอรีที่ระบุ จากนั้นให้ผลลัพธ์แก่ผู้ใช้ เครื่องมือนี้ทำการค้นหากับฐานข้อมูลที่เรียกว่า “mlocate.db” ซึ่งอยู่ใน “/var/lib/mlocate/mlocate.db” ฐานข้อมูลนี้อัพเดททุกเช้าโดยยูทิลิตี้ cron
คำสั่งดำเนินการเร็วกว่า find
เนื่องจากการค้นหาขัดกับฐานข้อมูลที่มีอยู่ซึ่งได้รวบรวมรายชื่อไฟล์และไดเร็กทอรีทั้งหมดไว้ในระบบแล้ว
locate
ตามด้วยชื่อไฟล์จะแสดงชื่อพาธสัมบูรณ์ที่มีไฟล์นั้นอยู่

สมมติว่ามีการสร้างสคริปต์ในโฮมไดเร็กทอรี

หากเราพยายามค้นหาสคริปต์ที่สร้างขึ้นใหม่และคัดลอกมา เราจะไม่ได้รับผลลัพธ์ใดๆ
locate myscript

เนื่องจาก cron อัปเดตฐานข้อมูลในตอนเช้าเท่านั้น ไฟล์ใดๆ จะถูกเพิ่มลงในระบบในระหว่างวัน ดังนั้นฐานข้อมูลจึงต้องอัปเดตด้วยตนเอง สามารถทำได้โดยใช้ updatedb
คำสั่ง
sudo updatedb
หากเราพยายาม "ค้นหา" สคริปต์ที่กำหนดเอง สคริปต์นั้นจะสามารถค้นหาไฟล์ได้

3. ซึ่ง
หลังจากคุยกันเรื่องคำสั่งเพื่อค้นหาไฟล์แล้ว ให้เราเปลี่ยนไปใช้คำสั่งเดียวที่ช่วยค้นหาเส้นทางที่แน่นอนของไฟล์เรียกทำงานบนระบบ:which
.
ไฟล์ปฏิบัติการ/สคริปต์/ไบนารีหนึ่งรายการอาจมีอยู่ในหลายตำแหน่งในระบบ which
ค้นหาในไดเร็กทอรีที่ระบุในตัวแปรสภาพแวดล้อม $PATH และ $MANPATH สำหรับการมีอยู่ของไฟล์เรียกทำงานที่ระบุ
ไม่มีสวิตช์ใดๆ which
แสดงพาธสัมบูรณ์แรกที่พบสำหรับการเรียกทำงาน

-a
สวิตช์แสดงเส้นทางสัมบูรณ์ที่พบทั้งหมดสำหรับการเรียกทำงานที่ระบุ

คุณสามารถพบเส้นทางที่แน่นอนสำหรับไฟล์เรียกทำงานหลายรายการโดยการระบุไฟล์เรียกทำงานทีละรายการ

4. ที่ไหน
whereis
เป็นคำสั่งอื่นและใช้เพื่อรับข้อมูลสามชิ้นเกี่ยวกับไฟล์สั่งการ:
- เส้นทางที่แน่นอนของไบนารี
- เส้นทางสัมบูรณ์ที่มีซอร์สโค้ดของไบนารีนั้นอยู่ในระบบ
- เส้นทางที่แน่นอนของคู่มือที่มีอยู่สำหรับไบนารีนั้น

สำหรับ "bzgrep" ไบนารีมีอยู่ใน "/ bin" และคู่มือมีอยู่ใน "/usr/share/man/man1" ไม่มีซอร์สโค้ดอยู่ในระบบ
whereis
สามารถสั่งให้ค้นหาเฉพาะเส้นทางที่แน่นอนของไบนารีโดยใช้ -b
สวิตซ์. การค้นหาสามารถทำได้เฉพาะในไดเร็กทอรีที่แสดงหลัง -B
สวิตซ์. ชื่อหลัง -f
ระบุไบนารีทั้งหมดที่ต้องการรับข้อมูล

ในทำนองเดียวกัน สามารถจำกัดการค้นหาได้เฉพาะซอร์สโค้ดหรือคู่มือเท่านั้น โดยใช้ -s
และ -m
สวิตช์ -S
และ –M
ตามด้วยชื่อไดเร็กทอรีระบุไดเร็กทอรีเพื่อค้นหาซอร์สโค้ดและคู่มือตามลำดับ
-l
switch จะแสดงรายการโดยละเอียดของเส้นทางที่แน่นอนของไดเร็กทอรีทั้งหมดที่ใช้โดย whereis
เพื่อทำการค้นหา

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