วิธีค้นหาไฟล์และโฟลเดอร์ใน Linux โดยใช้บรรทัดคำสั่ง
คนส่วนใหญ่ใช้ตัวจัดการไฟล์กราฟิกเพื่อค้นหาไฟล์ใน Linux เช่น Nautilus ใน Gnome, Dolphin ใน KDE และ Thunar ใน Xfce อย่างไรก็ตามมีหลายวิธีในการใช้บรรทัดคำสั่งเพื่อค้นหาไฟล์ใน Linux ไม่ว่าคุณจะใช้ตัวจัดการเดสก์ท็อปใด.
ใช้คำสั่งค้นหา
คำสั่ง "ค้นหา" ช่วยให้คุณค้นหาไฟล์ที่คุณรู้จักชื่อไฟล์โดยประมาณ รูปแบบที่ง่ายที่สุดของคำสั่งค้นหาไฟล์ในไดเรกทอรีปัจจุบันและเรียกซ้ำผ่านไดเรกทอรีย่อยที่ตรงกับเกณฑ์การค้นหาที่ให้มา คุณสามารถค้นหาไฟล์ตามชื่อเจ้าของกลุ่มประเภทการอนุญาตวันที่และเกณฑ์อื่น ๆ.
การพิมพ์คำสั่งต่อไปนี้ที่พร้อมท์จะแสดงรายการไฟล์ทั้งหมดที่พบในไดเรกทอรีปัจจุบัน.
หา .
จุดหลัง“ ค้นหา” หมายถึงไดเรกทอรีปัจจุบัน.
ในการค้นหาไฟล์ที่ตรงกับรูปแบบเฉพาะให้ใช้ -ชื่อ
ข้อโต้แย้ง. คุณสามารถใช้ตัวอักษรชื่อไฟล์ (เช่น * * * *
) แต่คุณควรใส่อักขระเลี่ยง ( \
) ต่อหน้าพวกเขาแต่ละคนหรือใส่ไว้ในเครื่องหมายคำพูด.
ตัวอย่างเช่นหากเราต้องการค้นหาไฟล์ทั้งหมดที่ขึ้นต้นด้วย“ โปร” ในไดเรกทอรีเอกสารเราจะใช้ เอกสาร cd /
คำสั่งเพื่อเปลี่ยนเป็นไดเร็กทอรี Documents จากนั้นพิมพ์คำสั่งต่อไปนี้:
หา -name pro \ *
ไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่ขึ้นต้นด้วย“ pro” จะแสดงรายการ.
หมายเหตุ: คำสั่ง find เป็นค่าเริ่มต้นที่คำนึงถึงขนาดตัวพิมพ์ หากคุณต้องการให้การค้นหาคำหรือวลีไม่ตรงตามตัวพิมพ์ใหญ่และตัวเล็กให้ใช้ -ฉันชื่อ
ตัวเลือกด้วยคำสั่งค้นหา เป็นเวอร์ชันที่ไม่สำคัญของตัวพิมพ์เล็ก -ชื่อ
คำสั่ง.
ถ้า หา
ไม่พบไฟล์ใด ๆ ที่ตรงกับเกณฑ์ของคุณ แต่จะไม่มีผลลัพธ์.
คำสั่ง find มีตัวเลือกมากมายสำหรับการปรับแต่งการค้นหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง find ให้รัน ผู้ชายค้นหา
ในหน้าต่าง Terminal และกด Enter.
การใช้คำสั่งค้นหา
คำสั่งค้นหาเร็วกว่าคำสั่ง find เนื่องจากใช้ฐานข้อมูลที่สร้างขึ้นก่อนหน้านี้ในขณะที่คำสั่ง find จะค้นหาในระบบจริงผ่านไดเรกทอรีและไฟล์จริงทั้งหมด คำสั่งค้นหาส่งคืนรายการของชื่อพา ธ ทั้งหมดที่มีกลุ่มของอักขระที่ระบุ.
ฐานข้อมูลจะได้รับการอัปเดตเป็นระยะ ๆ จาก cron แต่คุณสามารถอัปเดตฐานข้อมูลด้วยตัวเองได้ตลอดเวลาเพื่อให้ได้ผลลัพธ์ล่าสุด เมื่อต้องการทำเช่นนี้พิมพ์คำสั่งต่อไปนี้ที่พร้อมท์:
sudo updatedb
ป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง.
รูปแบบพื้นฐานของคำสั่งค้นหาจะค้นหาไฟล์ทั้งหมดในระบบไฟล์เริ่มต้นที่รูทซึ่งมีทั้งหมดหรือบางส่วนของเกณฑ์การค้นหา.
ค้นหา mydata
ตัวอย่างเช่นคำสั่งดังกล่าวพบสองไฟล์ที่มี“ mydata” และหนึ่งไฟล์ที่มี“ data”
หากคุณต้องการค้นหาไฟล์หรือไดเรกทอรีทั้งหมดที่มีเพียงเกณฑ์การค้นหาของคุณเท่านั้น -ข
ตัวเลือกด้วยคำสั่งค้นหาดังนี้.
หา -b '\ mydata'
แบ็กสแลชในคำสั่งด้านบนเป็นอักขระแบบกลมซึ่งมีวิธีในการขยายอักขระตัวแทนในชื่อไฟล์ที่ไม่เฉพาะเจาะจงลงในชุดของชื่อไฟล์ที่ระบุ อักขระตัวแทนเป็นสัญลักษณ์ที่สามารถแทนที่ด้วยอักขระอย่างน้อยหนึ่งตัวเมื่อมีการประเมินนิพจน์ สัญลักษณ์ตัวแทนที่พบบ่อยที่สุดคือเครื่องหมายคำถาม ( ?
) ซึ่งย่อมาจากอักขระเดียวและเครื่องหมายดอกจัน ( * * * *
) ซึ่งย่อมาจากสตริงอักขระที่ต่อเนื่องกัน ในตัวอย่างข้างต้นแบ็กสแลชจะปิดใช้งานการแทนที่ "mydata" โดย "* mydata *" โดยปริยายดังนั้นคุณจะได้ผลลัพธ์ที่มี "mydata" เท่านั้น
คำสั่ง mlocate เป็นการปรับใช้ใหม่ของตำแหน่งที่ตั้ง มันจัดทำดัชนีระบบไฟล์ทั้งหมด แต่ผลการค้นหาจะรวมเฉพาะไฟล์ที่ผู้ใช้ปัจจุบันมีสิทธิ์เข้าถึงเท่านั้น เมื่อคุณอัพเดตฐานข้อมูล mlocate จะเก็บข้อมูลการประทับเวลาในฐานข้อมูล สิ่งนี้จะช่วยให้ mlocate ทราบว่าเนื้อหาของไดเรกทอรีเปลี่ยนแปลงโดยไม่อ่านเนื้อหาอีกครั้งหรือไม่และทำการอัปเดตฐานข้อมูลเร็วขึ้นและเรียกร้องน้อยลงบนฮาร์ดไดรฟ์ของคุณ.
เมื่อคุณติดตั้ง mlocate การ / usr / bin / ค้นหาการเปลี่ยนแปลงไฟล์ไบนารีเพื่อชี้ไปที่ mlocate ในการติดตั้ง mlocate หากยังไม่รวมอยู่ในการกระจาย Linux ให้พิมพ์คำสั่งต่อไปนี้ที่พร้อมท์.
sudo apt-get install mlocate
หมายเหตุ: เราจะแสดงคำสั่งให้คุณทราบในภายหลังในบทความนี้ที่ช่วยให้คุณกำหนดตำแหน่งที่สามารถเรียกใช้งานคำสั่งได้หากมีอยู่.
คำสั่ง mlocate ไม่ได้ใช้ไฟล์ฐานข้อมูลเดียวกันกับคำสั่งค้นหามาตรฐาน ดังนั้นคุณอาจต้องการสร้างฐานข้อมูลด้วยตนเองโดยพิมพ์คำสั่งต่อไปนี้ที่พร้อมท์:
sudo /etc/cron.daily/mlocate
คำสั่ง mlocate จะไม่ทำงานจนกว่าจะสร้างฐานข้อมูลด้วยตนเองหรือเมื่อสคริปต์รันจาก cron.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งค้นหาหรือคำสั่ง mlocate ให้พิมพ์ ผู้ชายค้นหา
หรือ ผู้ชาย mlocate
ในหน้าต่าง Terminal และกด Enter หน้าจอวิธีใช้เดียวกันแสดงขึ้นสำหรับทั้งสองคำสั่ง.
การใช้คำสั่งอันไหน
คำสั่ง“ ไหน” ส่งคืนพา ธ สัมบูรณ์ของไฟล์เรียกทำงานที่เรียกใช้เมื่อออกคำสั่ง สิ่งนี้มีประโยชน์ในการค้นหาตำแหน่งของไฟล์เรียกทำงานเพื่อสร้างทางลัดไปยังโปรแกรมบนเดสก์ท็อปบนแผงควบคุมหรือตำแหน่งอื่น ๆ ในเดสก์ท็อป ตัวอย่างเช่นพิมพ์คำสั่ง ซึ่ง Firefox
แสดงผลลัพธ์ที่แสดงในภาพด้านล่าง.
ตามค่าเริ่มต้นคำสั่ง which จะแสดงเฉพาะไฟล์ที่เรียกทำงานครั้งแรกเท่านั้น ในการแสดงโปรแกรมเรียกทำงานที่ตรงกันทั้งหมดให้ใช้ -
ตัวเลือกด้วยคำสั่ง:
ซึ่ง - firefox
คุณสามารถค้นหาไฟล์เอ็กซีคิวต์หลายรายการได้ในคราวเดียวดังที่แสดงในภาพต่อไปนี้ เฉพาะพา ธ ไปยังไฟล์ที่เรียกทำงานได้ที่พบเท่านั้นที่จะถูกแสดง ในตัวอย่างด้านล่างพบเฉพาะไฟล์ปฏิบัติการ“ ps” เท่านั้น.
หมายเหตุ: คำสั่งใดค้นหาตัวแปร PATH ของผู้ใช้ปัจจุบันเท่านั้น หากคุณค้นหาไฟล์เรียกทำงานที่พร้อมใช้งานสำหรับผู้ใช้รูทในฐานะผู้ใช้ปกติเท่านั้นผลลัพธ์จะไม่ปรากฏ.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง which ให้พิมพ์“ man which” (โดยไม่ใส่เครื่องหมายอัญประกาศ) ที่พร้อมท์คำสั่งในหน้าต่าง Terminal และกด Enter.
การใช้คำสั่ง Whereis
คำสั่ง whereis ถูกใช้เพื่อค้นหาตำแหน่งของไบนารีไฟล์ต้นฉบับและไฟล์ man page สำหรับคำสั่ง ตัวอย่างเช่นการพิมพ์ ในกรณีที่ Firefox
ที่พรอมต์แสดงผลลัพธ์ตามที่แสดงในภาพต่อไปนี้.
หากคุณต้องการเฉพาะพา ธ ไปยังไฟล์ที่เรียกทำงานได้ที่จะแสดงไม่ใช่พา ธ ไปยังซอร์สและเพจ man (ual) ให้ใช้ -ข
ตัวเลือก ตัวอย่างเช่นคำสั่ง โดยที่ -b firefox
จะแสดงเท่านั้น / usr / bin / Firefox
ดังผลลัพท์. สิ่งนี้มีประโยชน์เพราะคุณมักจะค้นหาไฟล์ที่ปฏิบัติการได้ของโปรแกรมบ่อยกว่าที่คุณจะค้นหาซอร์สโค้ดและ man pages สำหรับโปรแกรมนั้น คุณยังสามารถค้นหาเฉพาะไฟล์ต้นฉบับ ( -s
) หรือเฉพาะหน้าคน ( -ม.
).
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง whereis ให้พิมพ์ ผู้ชายอยู่ที่ไหน
ในหน้าต่าง Terminal และกด Enter.
การทำความเข้าใจความแตกต่างระหว่างคำสั่ง Whereis และคำสั่งใด
คำสั่ง whereis แสดงตำแหน่งของไบนารีหน้าแหล่งที่มาและหน้าคนสำหรับคำสั่งในขณะที่คำสั่งใดแสดงตำแหน่งของไบนารีสำหรับคำสั่งให้คุณทราบเท่านั้น.
คำสั่ง whereis ค้นหารายการไดเร็กทอรีเฉพาะสำหรับไฟล์ไบนารีซอร์สและไฟล์ man ขณะที่คำสั่งใดค้นหาไดเร็กทอรีที่แสดงรายการในตัวแปรสภาวะแวดล้อม PATH ของผู้ใช้ปัจจุบัน สำหรับคำสั่ง whereis รายการของไดเรกทอรีที่เฉพาะเจาะจงสามารถพบได้ในส่วนไฟล์ของหน้าคนสำหรับคำสั่ง.
เมื่อพูดถึงผลลัพธ์ที่แสดงโดยค่าเริ่มต้นคำสั่ง whereis จะแสดงทุกสิ่งที่พบในขณะที่คำสั่งใดแสดงเฉพาะการเรียกใช้งานครั้งแรกที่พบ คุณสามารถเปลี่ยนได้โดยใช้ -
ตัวเลือกกล่าวถึงก่อนหน้านี้สำหรับคำสั่งที่.
เนื่องจากคำสั่ง whereis ใช้เฉพาะเส้นทางที่ฮาร์ดโค้ดลงในคำสั่งคุณอาจไม่พบสิ่งที่คุณต้องการเสมอไป หากคุณกำลังค้นหาโปรแกรมที่คุณคิดว่าอาจติดตั้งในไดเรกทอรีที่ไม่ได้อยู่ในรายชื่อ man page สำหรับคำสั่ง whereis คุณอาจต้องการใช้คำสั่ง which กับ -
ตัวเลือกเพื่อค้นหาคำสั่งทั้งหมดที่เกิดขึ้นทั่วทั้งระบบ.