- 1 1. บทนำ
- 2 2. คำสั่งพื้นฐานในการค้นหาไฟล์
- 3 3. คำอธิบายโดยละเอียดเกี่ยวกับคำสั่ง find
- 4 4. วิธีใช้คำสั่ง locate ให้เกิดประโยชน์
- 5 5. การใช้งานร่วมกับคำสั่ง grep
- 6 6. การค้นหาไฟล์ด้วยเครื่องมือ GUI
- 7 7. เคล็ดลับในการเพิ่มความเร็วและประสิทธิภาพการค้นหา
- 8 8. การแก้ไขปัญหา
- 9 9. สรุป
- 10 FAQ: คำถามที่พบบ่อยเกี่ยวกับการค้นหาไฟล์ใน Ubuntu
- 10.1 Q1. จะค้นหาไฟล์ที่มีนามสกุลเฉพาะใน Ubuntu ได้อย่างไร?
- 10.2 Q2. ทำไม locate command ถึงค้นหาไฟล์ล่าสุดไม่ได้?
- 10.3 Q3. ทำไมถึงได้รับข้อผิดพลาด “Permission denied” ในการค้นหาไฟล์?
- 10.4 Q4. ถ้าผลการค้นหาไม่ปรากฏในเครื่องมือ GUI ต้องทำอย่างไร?
- 10.5 Q5. จะยกเว้นโฟลเดอร์เฉพาะจากการค้นหาด้วยคำสั่ง find ได้อย่างไร?
- 10.6 Q6. ใน Ubuntu จะค้นหาเนื้อหาไฟล์นอกเหนือจากชื่อไฟล์ได้อย่างไร?
- 10.7 Q7. ควรใช้ locate หรือ find ดีกว่ากัน?
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) มีฟังก์ชันการค้นหาไฟล์ในตัว
ขั้นตอนการค้นหา
- เปิดตัวจัดการไฟล์
- เลือกโฟลเดอร์ที่ต้องการค้นหา
- พิมพ์คำหลักในแถบค้นหาด้านขวาบน
วิธีนี้ง่ายและเป็นประโยชน์สำหรับการค้นหารูปภาพและเอกสารอย่างรวดเร็ว
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