วิธีค้นหาไฟล์และโฟลเดอร์ใน Linux โดยใช้ Command Line

คนส่วนใหญ่ใช้โปรแกรมจัดการไฟล์แบบกราฟิกเพื่อค้นหาไฟล์ใน Linux เช่น Nautilus ใน Gnome, Dolphin ใน KDE และ Thunar ใน Xfce อย่างไรก็ตามมีหลายวิธีในการใช้บรรทัดคำสั่งเพื่อค้นหาไฟล์ใน Linux ไม่ว่าคุณจะใช้ตัวจัดการเดสก์ท็อปใดก็ตาม

ใช้คำสั่งค้นหา

คำสั่ง“ find” ช่วยให้คุณค้นหาไฟล์ที่คุณรู้จักชื่อไฟล์โดยประมาณ รูปแบบที่ง่ายที่สุดของคำสั่งจะค้นหาไฟล์ในไดเร็กทอรีปัจจุบันและเรียกซ้ำผ่านไดเร็กทอรีย่อยที่ตรงกับเกณฑ์การค้นหาที่ให้มา คุณสามารถค้นหาไฟล์ตามชื่อเจ้าของกลุ่มประเภทสิทธิ์วันที่และเกณฑ์อื่น ๆ

การพิมพ์คำสั่งต่อไปนี้ที่พรอมต์จะแสดงไฟล์ทั้งหมดที่พบในไดเร็กทอรีปัจจุบัน

หา.

จุดหลัง“ find” แสดงถึงไดเร็กทอรีปัจจุบัน

หากต้องการค้นหาไฟล์ที่ตรงกับรูปแบบเฉพาะให้ใช้-nameอาร์กิวเมนต์ คุณสามารถใช้อักขระเมตาชื่อไฟล์ (เช่น*) แต่คุณควรใส่อักขระหลีก ( \) ไว้ข้างหน้าหรือใส่ไว้ในเครื่องหมายคำพูด

ตัวอย่างเช่นหากเราต้องการค้นหาไฟล์ทั้งหมดที่ขึ้นต้นด้วย“ pro” ในไดเร็กทอรี Documents เราจะใช้cd Documents/คำสั่งเพื่อเปลี่ยนเป็นไดเร็กทอรี Documents จากนั้นพิมพ์คำสั่งต่อไปนี้:

หา. - ชื่อโปร \ *

ไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันที่ขึ้นต้นด้วย“ pro” จะแสดงรายการ

หมายเหตุ: คำสั่ง find เป็นค่าเริ่มต้นที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ หากคุณต้องการให้การค้นหาคำหรือวลีไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ให้ใช้-inameตัวเลือกกับคำสั่ง find เป็นเวอร์ชันที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ของ-nameคำสั่ง

หากfindไม่พบไฟล์ใด ๆ ที่ตรงกับเกณฑ์ของคุณระบบจะไม่สร้างเอาต์พุต

คำสั่ง find มีตัวเลือกมากมายสำหรับการปรับแต่งการค้นหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง find ให้เรียกใช้man find  ในหน้าต่าง Terminal แล้วกด Enter

ใช้คำสั่ง Locate

คำสั่ง locate เร็วกว่าคำสั่ง find เนื่องจากใช้ฐานข้อมูลที่สร้างไว้ก่อนหน้านี้ในขณะที่คำสั่ง find จะค้นหาในระบบจริงผ่านไดเร็กทอรีและไฟล์จริงทั้งหมด คำสั่ง locate ส่งคืนรายการชื่อพา ธ ทั้งหมดที่มีกลุ่มอักขระที่ระบุ

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

sudo ปรับปรุง b

ป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง

รูปแบบพื้นฐานของคำสั่ง locate ค้นหาไฟล์ทั้งหมดบนระบบไฟล์โดยเริ่มจาก root ที่มีเงื่อนไขการค้นหาทั้งหมดหรือบางส่วน

ค้นหา mydata

ตัวอย่างเช่นคำสั่งด้านบนพบไฟล์สองไฟล์ที่มี "mydata" และอีกไฟล์หนึ่งที่มี "data"

หากคุณต้องการค้นหาไฟล์หรือไดเร็กทอรีทั้งหมดที่มีเฉพาะเกณฑ์การค้นหาของคุณเท่านั้นให้ใช้-bตัวเลือกกับคำสั่ง locate ดังต่อไปนี้

ค้นหา -b '\ mydata'

แบ็กสแลชในคำสั่งด้านบนเป็นอักขระ globbing ซึ่งให้วิธีการขยายอักขระตัวแทนในชื่อไฟล์ที่ไม่เฉพาะเจาะจงลงในชุดชื่อไฟล์เฉพาะ สัญลักษณ์แทนคือสัญลักษณ์ที่สามารถแทนที่ด้วยอักขระหนึ่งตัวขึ้นไปเมื่อนิพจน์ได้รับการประเมิน สัญลักษณ์ตัวแทนที่พบบ่อยที่สุดคือเครื่องหมายคำถาม ( ?) ซึ่งย่อมาจากอักขระเดี่ยวและเครื่องหมายดอกจัน ( *) ซึ่งหมายถึงสตริงอักขระที่ต่อเนื่องกัน ในตัวอย่างข้างต้นแบ็กสแลชปิดใช้งานการแทนที่ "mydata" โดยนัยโดย "* mydata *" ดังนั้นคุณจะได้ผลลัพธ์ที่มี "mydata" เท่านั้น

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

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

sudo apt-get install mlocate

หมายเหตุ: เราจะแสดงคำสั่งต่อคุณในบทความนี้ซึ่งช่วยให้คุณกำหนดตำแหน่งที่เรียกใช้งานสำหรับคำสั่งได้หากมีอยู่

คำสั่ง mlocate ไม่ได้ใช้ไฟล์ฐานข้อมูลเดียวกันกับคำสั่ง locate มาตรฐาน ดังนั้นคุณอาจต้องการสร้างฐานข้อมูลด้วยตนเองโดยพิมพ์คำสั่งต่อไปนี้ที่พร้อมต์:

sudo /etc/cron.daily/mlocate

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง locate หรือ mlocate ให้พิมพ์man locateหรือman mlocate  ในหน้าต่าง Terminal แล้วกด Enter หน้าจอวิธีใช้เดียวกันจะปรากฏขึ้นสำหรับทั้งสองคำสั่ง

ใช้คำสั่งใด

คำสั่ง "ซึ่ง" ส่งคืนพา ธ สัมบูรณ์ของไฟล์ปฏิบัติการที่เรียกเมื่อออกคำสั่ง สิ่งนี้มีประโยชน์ในการค้นหาตำแหน่งของไฟล์ปฏิบัติการสำหรับการสร้างทางลัดไปยังโปรแกรมบนเดสก์ท็อปบนแผงควบคุมหรือที่อื่น ๆ ในตัวจัดการเดสก์ท็อป ตัวอย่างเช่นการพิมพ์คำสั่งwhich firefox จะแสดงผลลัพธ์ดังรูปด้านล่าง

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

ซึ่ง -a firefox

คุณสามารถค้นหาไฟล์ปฏิบัติการได้หลายรายการพร้อมกันดังแสดงในภาพต่อไปนี้ แสดงเฉพาะพา ธ ไปยังไฟล์ปฏิบัติการที่พบเท่านั้น ในตัวอย่างด้านล่างพบเฉพาะไฟล์ปฏิบัติการ“ ps” เท่านั้น

หมายเหตุ: คำสั่งที่ค้นหาตัวแปร PATH ของผู้ใช้ปัจจุบันเท่านั้น หากคุณค้นหาไฟล์ปฏิบัติการที่พร้อมใช้งานสำหรับผู้ใช้รูทในฐานะผู้ใช้ปกติจะไม่มีผลลัพธ์ปรากฏขึ้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งใดให้พิมพ์“ man which” (ไม่มีเครื่องหมายอัญประกาศ) ที่พรอมต์คำสั่งในหน้าต่าง Terminal แล้วกด Enter

การใช้คำสั่ง Whereis

คำสั่ง whereis ใช้เพื่อค้นหาว่าไฟล์ไบนารีซอร์สและแมนเพจสำหรับคำสั่งอยู่ที่ใด ตัวอย่างเช่นการพิมพ์whereis firefox พร้อมท์จะแสดงผลลัพธ์ดังที่แสดงในภาพต่อไปนี้

หากคุณต้องการให้แสดงเฉพาะพา ธ ไปยังไฟล์ปฏิบัติการเท่านั้นไม่ใช่พา ธ ไปยังซอร์สและเพจ man (ual) ให้ใช้-bอ็อพชัน ตัวอย่างเช่นคำสั่งwhereis -b firefoxจะแสดง/usr/bin/firefoxเป็นผลลัพธ์เท่านั้น สิ่งนี้มีประโยชน์เพราะคุณมักจะค้นหาไฟล์ปฏิบัติการของโปรแกรมบ่อยกว่าที่คุณจะค้นหาซอร์สและหน้าคนสำหรับโปรแกรมนั้น คุณยังสามารถค้นหาเฉพาะไฟล์ต้นฉบับ ( -s) หรือเฉพาะ man pages ( -m)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง whereis พิมพ์man whereis ในหน้าต่าง Terminal แล้วกด Enter

การทำความเข้าใจความแตกต่างระหว่างคำสั่ง Whereis และคำสั่งใด

คำสั่ง whereis จะแสดงตำแหน่งของไบนารีซอร์สและหน้าแมนสำหรับคำสั่งในขณะที่คำสั่งใดจะแสดงเฉพาะตำแหน่งของไบนารีสำหรับคำสั่ง

คำสั่ง whereis จะค้นหารายการของไดเร็กทอรีเฉพาะสำหรับไฟล์ไบนารีซอร์สและไฟล์ man ในขณะที่คำสั่งใดค้นหาไดเร็กทอรีที่อยู่ในตัวแปรสภาพแวดล้อม PATH ของผู้ใช้ปัจจุบัน สำหรับคำสั่ง whereis รายการของไดเร็กทอรีเฉพาะสามารถพบได้ในส่วน FILES ของ man page สำหรับคำสั่ง

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

เนื่องจากคำสั่ง whereis ใช้เฉพาะพา ธ ที่เข้ารหัสในคำสั่งคุณจึงอาจไม่พบสิ่งที่ต้องการเสมอไป หากคุณกำลังค้นหาโปรแกรมที่คุณคิดว่าอาจติดตั้งไว้ในไดเร็กทอรีที่ไม่อยู่ในรายการ man page สำหรับคำสั่ง whereis คุณอาจต้องการใช้คำสั่งใดกับ-aอ็อพชันเพื่อค้นหาการเกิดขึ้นทั้งหมดของคำสั่งทั่วทั้งระบบ