สาธารณะ : ผู้เริ่มต้นและระดับกลาง.
  1. ปัญหา: ค้นหาไฟล์ในระบบปฏิบัติการ Linux ผ่านเทอร์มินัล

คำนำ

ในบทความนี้ เราจะสำรวจวิธีค้นหาไฟล์บน Ubuntu โดยใช้เทอร์มินัล Zsh. Zsh (Z shell) คือตัวแปลภาษาคำสั่งที่ทรงพลังและใช้กันอย่างแพร่หลาย เนื่องจากความยืดหยุ่นและคุณสมบัติขั้นสูงของมัน

Ubuntu คือการกระจาย Linux ที่เป็นที่นิยม มีเครื่องมือบรรทัดคำสั่งหลายอย่างในการค้นหาไฟล์ เราจะเห็นวิธีการใช้คำสั่งเช่น`find`, locate et `grep`เพื่อค้นหาไฟล์อย่างรวดเร็วและมีประสิทธิภาพในเทอร์มินัล

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

คำสั่ง`find`ช่วยให้ค้นหาไฟล์ในโฟลเดอร์เฉพาะและโฟลเดอร์ย่อยของมันได้. รูปแบบไวยากรณ์พื้นฐานของมันมีดังต่อไปนี้ :

find [chemin] -name [nom_du_fichier]

นี่คือตัวอย่างที่เป็นประโยชน์ซึ่งเรากำลังค้นหาไฟล์ชื่อ`example.txt`ในไดเรกทอรี่`/home`(Empty response)

find /home -name "example.txt"

คำสั่งนี้จะเดินผ่านทุกไดเรกทอรีย่อยของ`/home`และแสดงเส้นทางเต็มของไฟล์หากพบ.

คู่มือออนไลน์ของคำสั่ง`find`:https://man.archlinux.org/man/find.1.fr/[man find,วินโดวส์=อ่านทีหลัง]

ตัวเลือกเพิ่มเติมสำหรับ `find

คำสั่ง`find`มีพลังมากและมีตัวเลือกมากมาย. ต่อไปนี้เป็นตัวอย่างที่มีประโยชน์บางส่วน :

  • ค้นหาตามประเภทไฟล์ค้นหาเฉพาะไฟล์ ให้ใช้`-type f`, และ เพื่อ ค้นหา ของ ไดเรกทอรี, ใช้`-type d`. - ค้นหาตามขนาด: คุณยังสามารถกรองไฟล์ตามขนาดโดยใช้ตัวเลือกได้`-size`. ตัวอย่างเช่น, เพื่อค้นหาไฟล์ที่มีขนาดมากกว่า 100 เมกะไบต์, ใช้ :

find /home -size +100M

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

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

sudo updatedb

ต่อจากนั้น คุณสามารถค้นหาไฟล์ได้เช่นนี้ :

locate example.txt

ฉันใช้https://fr.wikipedia.org/wiki/Z_Shell[zsh]และhttps://github.com/ohmyzsh/ohmyzsh/wiki[oh-my-zsh], มันปรากฏว่าคำสั่ง`locate`ไม่สามารถเข้าถึงได้จาก`zsh`แต่ก็เป็นไปได้ตั้งแต่`bash`, เพื่อแก้ปัญหานี้, ข้อโต้แย้ง`-c`ของคำสั่ง`bash`ทำให้สามารถเรียกใช้คำสั่งได้`bash`จากอีกประเภทของเทอร์มินัล.

ฉันกำลังค้นหาไฟล์ที่ลงท้ายด้วยแพตเทิร์น`001.pdf`ในไดเรกทอรีของผู้ใช้

bash -c "locate ~/*001.pdf"

คู่มือออนไลน์ของคำสั่ง`locate`(empty)man locate

ใช้คำสั่ง grep เพื่อค้นหาข้อความในไฟล์

ถ้าคุณต้องการค้นหาข้อความเฉพาะเจาะจงภายในไฟล์ คุณสามารถใช้`grep`. For example, to search for the occurrence of the word "Ubuntu" in all files`.txt`ของ ไดเรกทอรี ปัจจุบัน, ใช้ :

grep "Ubuntu" *.txt

สรุป

การค้นหาไฟล์บน Ubuntu ผ่านเทอร์มินัล Zsh สามารถทำได้โดยใช้เครื่องมืออันทรงพลังหลายตัว`find`ยืดหยุ่นและมีตัวเลือกมากมาย ในขณะที่`locate`ช่วยให้การค้นหาทำได้อย่างรวดเร็วด้วยฐานข้อมูลที่สร้างไว้ล่วงหน้า. สุดท้าย,`grep`มันสามารถใช้เพื่อค้นหาเหตุการณ์ของข้อความภายในไฟล์

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

บทความที่เกี่ยวข้อง