การค้นหาไฟล์ใน Ubuntu: คำสั่ง Find, Locate, Grep และ GUI สำหรับผู้เริ่มต้นถึงมืออาชีพ

目次

1. บทนำ

Ubuntu เป็นระบบปฏิบัติการ Linux ที่ได้รับความนิยมอย่างแพร่หลาย และการเรียนรู้วิธีค้นหาไฟล์อย่างมีประสิทธิภาพเป็นสิ่งสำคัญในการเพิ่มประสิทธิภาพการทำงานประจำวัน
บทความนี้จะอธิบายคำสั่งและเครื่องมือค้นหาไฟล์ที่มีอยู่ใน Ubuntu อย่างเข้าใจง่ายสำหรับผู้เริ่มต้นจนถึงผู้ใช้งานระดับกลาง
นอกจากนี้ เราจะพูดถึงวิธีการเพิ่มความเร็วในการค้นหาและการแก้ไขปัญหาต่างๆ ด้วย ดังนั้นโปรดศึกษาจากบทความนี้

年収訴求

2. คำสั่งพื้นฐานในการค้นหาไฟล์

ใน Ubuntu มีคำสั่งพื้นฐานหลายอย่างสำหรับการค้นหาไฟล์
ในส่วนนี้จะอธิบายคำสั่งที่สำคัญ เช่น “find” และ “locate”

2.1 คำสั่ง find คืออะไร

คำสั่ง find เป็นเครื่องมือที่มีประสิทธิภาพอย่างยิ่งในการค้นหาไฟล์ในไดเร็กทอรีที่ระบุ โดยใช้ชื่อไฟล์หรือเงื่อนไขที่กำหนด

โครงสร้างพื้นฐานของคำสั่ง find

find [ไดเร็กทอรีเริ่มต้นการค้นหา] [เงื่อนไขการค้นหา]

ตัวอย่าง: หากต้องการค้นหาไฟล์ชื่อ “example.txt” ในโฮมไดเร็กทอรี

find ~/ -name "example.txt"

ตัวอย่างตัวเลือกของคำสั่ง find

  • -name: ค้นหาตามชื่อไฟล์ (คำนึงถึงตัวพิมพ์เล็ก-ใหญ่)
  • -iname: ค้นหาตามชื่อไฟล์ (ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่)
  • -type: ระบุชนิดของไฟล์ (d=ไดเร็กทอรี, f=ไฟล์)
  • -size: ค้นหาตามขนาดไฟล์ (เช่น +1M คือ 1MB ขึ้นไป)

2.2 คำสั่ง locate คืออะไร

คำสั่ง locate มีจุดเด่นคือความเร็วในการค้นหาที่สูงมาก อย่างไรก็ตาม ผลการค้นหาจะขึ้นอยู่กับฐานข้อมูลดัชนี

โครงสร้างพื้นฐานของคำสั่ง locate

locate [ชื่อไฟล์หรือส่วนหนึ่งของพาธ]

ตัวอย่าง: ค้นหาไฟล์ที่มีคำว่า “example” ในชื่อไฟล์

locate example

ข้อควรระวังของคำสั่ง locate

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

sudo updatedb

2.3 การเลือกใช้ find และ locate

  • find: เหมาะสำหรับการค้นหาด้วยเงื่อนไขที่ละเอียดกว่า
  • locate: เหมาะสำหรับการค้นหาอย่างรวดเร็ว

3. คำอธิบายโดยละเอียดเกี่ยวกับคำสั่ง find

คำสั่ง find มีความสามารถหลากหลายมาก และการใช้ตัวเลือกต่างๆ อย่างชำนาญจะช่วยให้ค้นหาได้อย่างมีประสิทธิภาพ
ในส่วนนี้จะอธิบายโดยละเอียดพร้อมตัวอย่างการใช้งานจริง

3.1 ค้นหาตามชื่อไฟล์

หากต้องการค้นหาโดยระบุชื่อไฟล์ ให้ใช้ตัวเลือก -name หรือ -iname

ตัวอย่าง: ค้นหาไฟล์ทั้งหมดที่มีนามสกุล “.txt”

find ~/ -name "*.txt"

3.2 ค้นหาตามขนาดไฟล์

สามารถระบุเงื่อนไขการค้นหาตามขนาดของไฟล์ได้

ตัวอย่าง: ค้นหาไฟล์ที่มีขนาด 1MB ขึ้นไป

find ~/ -size +1M

3.3 ค้นหาตามวันที่อัปเดต

ใช้ตัวเลือก -mtime เพื่อค้นหาไฟล์ที่ได้รับการแก้ไขภายในจำนวนวันที่ระบุ

ตัวอย่าง: ค้นหาไฟล์ที่อัปเดตภายใน 7 วันที่ผ่านมา

find ~/ -mtime -7

3.4 ดำเนินการเฉพาะกับผลการค้นหา

สามารถดำเนินการบางอย่างกับผลการค้นหาได้เช่นกัน

ตัวอย่าง: ลบไฟล์ที่ค้นหา

find ~/ -name "*.tmp" -exec rm -f {} ;

4. วิธีใช้คำสั่ง locate ให้เกิดประโยชน์

คำสั่ง locate ไม่เพียงใช้ง่าย แต่ยังทำงานได้อย่างรวดเร็วอีกด้วย
ในส่วนนี้จะแนะนำวิธีใช้คำสั่ง locate ที่เป็นประโยชน์

4.1 ค้นหาด้วยส่วนหนึ่งของพาธ

แม้จะไม่ทราบชื่อไฟล์ทั้งหมด ก็สามารถค้นหาโดยระบุส่วนหนึ่งของพาธได้

ตัวอย่าง: ค้นหาไฟล์ที่เกี่ยวข้องกับ “Documents” ในโฮมไดเร็กทอรี

locate ~/Documents

4.2 การกรองผลการค้นหา

หากต้องการจำกัดผลการค้นหาให้แคบลง ให้ใช้ grep ร่วมด้วย

ตัวอย่าง: แสดงเฉพาะไฟล์นามสกุล .txt จากผลการค้นหา

locate example | grep ".txt"

 

5. การใช้งานร่วมกับคำสั่ง grep

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

5.1 พื้นฐานของคำสั่ง grep

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

โครงสร้างพื้นฐานของคำสั่ง grep

grep [ตัวเลือก] "สตริงที่ค้นหา" [ไฟล์]

ตัวอย่าง: ค้นหาบรรทัดที่มีสตริง “Ubuntu” ในไฟล์ example.txt

grep "Ubuntu" example.txt

ตัวเลือกหลักของ grep

  • -i: ค้นหาโดยไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่
  • -r: ค้นหาซ้ำในไดเร็กทอรี
  • -n: แสดงหมายเลขบรรทัดที่ตรงกัน

5.2 การรวมคำสั่ง find และ grep

สามารถใช้คำสั่ง find เพื่อค้นหาไฟล์ที่ต้องการ แล้วใช้ grep เพื่อตรวจสอบเนื้อหาภายในไฟล์เหล่านั้นได้

ตัวอย่าง: ค้นหาสตริง “error” ในไฟล์ที่มีนามสกุล .log

find ~/ -name "*.log" -exec grep "error" {} ;

5.3 การรวมคำสั่ง locate และ grep

สามารถใช้ grep เพื่อกรองผลลัพธ์ที่ได้จากการค้นหาด้วยคำสั่ง locate ได้

ตัวอย่าง: ค้นหาไฟล์ .txt ที่มีสตริง “example”

locate "*.txt" | grep "example"

6. การค้นหาไฟล์ด้วยเครื่องมือ GUI

สำหรับผู้เริ่มต้นที่ไม่คุ้นเคยกับ CLI (Command Line Interface) หรือผู้ที่ต้องการการใช้งานที่ง่ายและเป็นธรรมชาติ การค้นหาไฟล์ด้วยเครื่องมือ GUI จะสะดวกกว่า
ในส่วนนี้จะอธิบายคุณสมบัติมาตรฐานของ Ubuntu และเครื่องมือของบุคคลที่สาม

6.1 ฟังก์ชันการค้นหาไฟล์มาตรฐานของ Ubuntu

ตัวจัดการไฟล์ของ Ubuntu (Nautilus) มีฟังก์ชันการค้นหาไฟล์ในตัว

ขั้นตอนการค้นหา

  1. เปิดตัวจัดการไฟล์
  2. เลือกโฟลเดอร์ที่ต้องการค้นหา
  3. พิมพ์คำหลักในแถบค้นหาด้านขวาบน

วิธีนี้ง่ายและเป็นประโยชน์สำหรับการค้นหารูปภาพและเอกสารอย่างรวดเร็ว

6.2 เครื่องมือค้นหาของบุคคลที่สาม

Ubuntu มีเครื่องมือค้นหาที่มีประสิทธิภาพมากกว่าบางตัว นี่คือตัวอย่าง:

Catfish

เครื่องมือค้นหา GUI แบบน้ำหนักเบาที่สามารถค้นหาไฟล์ได้อย่างรวดเร็ว

  • วิธีการติดตั้ง
  sudo apt install catfish
  • วิธีการใช้งาน
    เพียงเปิด Catfish และพิมพ์คำหลักในแถบค้นหา ผลลัพธ์ก็จะปรากฏขึ้น

FSearch

เครื่องมือค้นหาสำหรับเดสก์ท็อปที่ให้ความรู้สึกเหมือน “Everything” บน Windows

  • วิธีการติดตั้ง
  sudo apt install fsearch
  • คุณสมบัติ
  • ค้นหาได้รวดเร็วด้วยการสร้างดัชนี
  • อินเทอร์เฟซที่เรียบง่ายและใช้งานง่าย

 

7. เคล็ดลับในการเพิ่มความเร็วและประสิทธิภาพการค้นหา

ในการปรับปรุงความเร็วในการค้นหาไฟล์ มีข้อควรปฏิบัติหลายอย่าง
ในส่วนนี้จะอธิบายวิธีการเฉพาะในการเพิ่มประสิทธิภาพการค้นหา

7.1 การใช้ดัชนี

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

ตัวอย่าง: การอัปเดตฐานข้อมูล

sudo updatedb

7.2 การจำกัดขอบเขตการค้นหา

การจำกัดขอบเขตการค้นหาจะช่วยลดเวลาได้

  • จำกัดการค้นหาเฉพาะในไดเร็กทอรีที่ระบุ
  • ยกเว้นรูปแบบไฟล์ที่ไม่จำเป็น

ตัวอย่าง: ยกเว้นไฟล์ PDF ในโฮมไดเร็กทอรี

find ~/ -type f ! -name "*.pdf"

7.3 การใช้ตัวเลือกการเพิ่มความเร็ว

คำสั่งหลายคำสั่งมีตัวเลือกในการเพิ่มความเร็วในการค้นหา การใช้ตัวเลือก -maxdepth ของ find สามารถจำกัดความลึกของไดเร็กทอรีได้

ตัวอย่าง: ค้นหาเฉพาะในไดเร็กทอรีปัจจุบันและระดับความลึก 1 ระดับ

find ./ -maxdepth 1 -name "*.txt"

8. การแก้ไขปัญหา

จะอธิบายสาเหตุและวิธีแก้ไขเมื่อการค้นหาไฟล์ไม่สำเร็จ

8.1 กรณีที่ไม่มีผลการค้นหา

  • สาเหตุ 1: ชื่อไฟล์แตกต่างกัน
  • วิธีแก้ไข: ใช้ตัวเลือก -iname เพื่อไม่ให้คำนึงถึงตัวพิมพ์เล็ก-ใหญ่
  • สาเหตุ 2: ไฟล์เป็นไฟล์ที่ซ่อนอยู่
  • วิธีแก้ไข: เพิ่มตัวเลือก -name ".*" เพื่อค้นหาไฟล์ที่ซ่อนอยู่

8.2 ปัญหาเกี่ยวกับสิทธิ์

หากไม่มีสิทธิ์เข้าถึงไดเร็กทอรีบางแห่ง ผลการค้นหาอาจไม่ปรากฏ

  • วิธีแก้ไข: เรียกใช้คำสั่งด้วย sudo เพื่อสิทธิ์ผู้ดูแลระบบ
  sudo find / -name "example.txt"

8.3 locate ไม่แสดงข้อมูลล่าสุด

ฐานข้อมูลอาจเก่า

  • วิธีแก้ไข: อัปเดตฐานข้อมูลด้วย updatedb
sudo updatedb

 

9. สรุป

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

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

FAQ: คำถามที่พบบ่อยเกี่ยวกับการค้นหาไฟล์ใน Ubuntu

Q1. จะค้นหาไฟล์ที่มีนามสกุลเฉพาะใน Ubuntu ได้อย่างไร?

A1. สามารถใช้คำสั่ง find เพื่อค้นหาไฟล์ที่มีนามสกุลเฉพาะได้ ตัวอย่างเช่น หากต้องการค้นหาไฟล์ .txt ในโฮมไดเร็กทอรี ให้รันคำสั่งต่อไปนี้:

find ~/ -name "*.txt"

Q2. ทำไม locate command ถึงค้นหาไฟล์ล่าสุดไม่ได้?

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

sudo updatedb

Q3. ทำไมถึงได้รับข้อผิดพลาด “Permission denied” ในการค้นหาไฟล์?

A3. ไดเร็กทอรีบางแห่งไม่มีสิทธิ์การเข้าถึงสำหรับผู้ใช้ทั่วไป ในกรณีนี้ คุณสามารถแก้ไขได้โดยใช้ sudo เพื่อรันคำสั่งด้วยสิทธิ์ผู้ดูแลระบบ

sudo find / -name "example.txt"

Q4. ถ้าผลการค้นหาไม่ปรากฏในเครื่องมือ GUI ต้องทำอย่างไร?

A4. หากผลลัพธ์ไม่ปรากฏในเครื่องมือ GUI โปรดตรวจสอบประเด็นต่อไปนี้:

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

Q5. จะยกเว้นโฟลเดอร์เฉพาะจากการค้นหาด้วยคำสั่ง find ได้อย่างไร?

A5. คุณสามารถใช้ตัวเลือก -prune ของคำสั่ง find เพื่อยกเว้นโฟลเดอร์บางโฟลเดอร์จากการค้นหา นี่คือตัวอย่าง:

find ~/ -path "~/exclude_folder" -prune -o -name "*.txt" -print

Q6. ใน Ubuntu จะค้นหาเนื้อหาไฟล์นอกเหนือจากชื่อไฟล์ได้อย่างไร?

A6. ในการค้นหาเนื้อหาไฟล์ ให้ใช้คำสั่ง grep ตัวอย่างเช่น หากต้องการค้นหาสตริง “Ubuntu” ใน example.txt ให้รันคำสั่งต่อไปนี้:

grep "Ubuntu" example.txt

หากต้องการค้นหาหลายไฟล์ ให้ใช้ตัวเลือกการค้นหาแบบวนซ้ำ -r

Q7. ควรใช้ locate หรือ find ดีกว่ากัน?

A7. locate รวดเร็วกว่า แต่เนื่องจากใช้ดัชนี ไฟล์ล่าสุดอาจไม่ถูกค้นพบ ในทางกลับกัน find มีความยืดหยุ่นและสามารถค้นหาได้ละเอียดกว่า แต่จะใช้เวลาเล็กน้อยกว่า ควรเลือกใช้ตามวัตถุประสงค์:

  • หากต้องการค้นหาอย่างรวดเร็ว: locate
  • หากต้องการค้นหาด้วยเงื่อนไขที่ละเอียด: find