ค้นหาไฟล์ที่มีข้อความเฉพาะใน Linux
Linux ไม่ว่าคุณจะใช้ distro ใด มาพร้อมกับเครื่องมือ GUI จำนวนมากที่อนุญาตให้ค้นหาไฟล์ได้ ตัวจัดการไฟล์ที่ทันสมัยจำนวนมากรองรับการค้นหาไฟล์ในรายการไฟล์ อย่างไรก็ตาม มีหลายสถานการณ์เมื่อคุณจำเป็นต้องใช้คอนโซล เช่น ระหว่างเซสชัน SSH หรือเมื่อเซิร์ฟเวอร์ X ไม่เริ่มทำงาน นี่คือวิธีที่คุณสามารถค้นหาไฟล์ที่มีข้อความเฉพาะได้อย่างรวดเร็วโดยใช้เทอร์มินัล
หากคุณสามารถใช้ GUI ได้ การค้นหาไฟล์จะไม่เป็นปัญหา ในสภาพแวดล้อมเดสก์ท็อป XFCE ที่ฉันโปรดปราน ตัวจัดการไฟล์ Thunar อนุญาตให้ค้นหาไฟล์โดยพิมพ์ชื่อไฟล์โดยตรงในรายการไฟล์
อย่างไรก็ตาม ไม่มีตัวจัดการไฟล์ใดที่ฉันพยายามอนุญาตให้ค้นหาเนื้อหาไฟล์
หากต้องการข้ามข้อจำกัดนี้เมื่อทำงานในเซสชัน GUI คุณสามารถใช้ Catfish ปลาดุกเป็นเครื่องมือค้นหายอดนิยม อนุญาตให้ค้นหาเนื้อหาไฟล์ คุณต้องคลิกที่ไอคอนรูปเฟืองและเปิดใช้งานตัวเลือก ค้นหาไฟล์เนื้อหา.
อย่างไรก็ตาม เมื่อพูดถึงเทอร์มินัล คุณไม่สามารถใช้เครื่องมือกราฟิกใดๆ ได้ นอกจากนี้ ฉันพบว่าปลาดุกไม่มีประโยชน์และชอบเครื่องมือคอนโซลแบบคลาสสิกมากกว่า นี่คือวิธีการและเครื่องมือที่ฉันใช้
เพื่อค้นหาไฟล์ที่มีข้อความเฉพาะใน Linuxให้ทำดังต่อไปนี้
- เปิดแอปเทอร์มินัลที่คุณชื่นชอบ ขั้ว XFCE4 เป็นความชอบส่วนตัวของฉัน
- พิมพ์คำสั่งต่อไปนี้:
find ./ -type f -exec grep -l "text to find" {} \;
- สิ่งนี้จะสร้างรายการไฟล์ที่มีส่วนข้อความที่ต้องการ
คำสั่ง find จะค้นหาไฟล์ที่เริ่มต้นจากไดเร็กทอรีปัจจุบัน "./" คุณสามารถระบุเส้นทางที่ต้องการแทนได้
ทางเลือก -พิมพ์f บอกให้ค้นหาเฉพาะไฟล์และไม่รวมไดเร็กทอรี นอกจากนี้ คุณสามารถค้นหาเฉพาะไฟล์บางประเภทโดยเพิ่มตัวเลือกดังนี้:find ./ -type f -iname "*.txt" -exec grep -l "text to find" {} \;
ดูภาพหน้าจอต่อไปนี้:
NS -exec ตัวเลือกเรียกเครื่องมือ grep สำหรับแต่ละไฟล์ที่ตรงกันเพื่อตรวจสอบเนื้อหา หากพบข้อความในไฟล์ ชื่อของข้อความนั้นจะถูกเพิ่มไปยังผลลัพธ์ด้วยคำสั่ง -l ตัวเลือก.
ทางเลือก
มีทางเลือกอื่นนอกเหนือจากวิธีการที่อธิบายไว้ข้างต้น ก่อนอื่น คุณสามารถใช้ได้เฉพาะ grep เครื่องมือ. ลองใช้คำสั่งต่อไปนี้:
grep -iRl "ข้อความที่จะค้นหา" ./
- -i หมายถึงกรณีข้อความละเว้น
- -R ย่อมาจากการประมวลผลไฟล์แบบเรียกซ้ำ
- -l ย่อมาจาก "แสดงชื่อไฟล์ ไม่ใช่ผลลัพธ์"
อย่างที่คุณเห็น วิธีนี้มีความยืดหยุ่นน้อยกว่า หา สั่งการ.
ผู้บัญชาการเที่ยงคืน
อีกวิธีหนึ่งที่ฉันมักใช้คือ Midnight Commander (mc) แอปตัวจัดการไฟล์คอนโซล ไม่เหมือนกับ find หรือ grep โดยค่าเริ่มต้น mc ไม่รวมอยู่ใน distros Linux ทั้งหมดที่ฉันได้ลอง คุณอาจต้องติดตั้งด้วยตัวเอง
หากต้องการค้นหาไฟล์ที่มีข้อความเฉพาะโดยใช้ Midnight Commander ให้เปิดแอปและกดตามลำดับต่อไปนี้บนแป้นพิมพ์:
Alt + กะ + ?
ซึ่งจะเปิดกล่องโต้ตอบการค้นหา
กรอกข้อมูลในส่วน "ชื่อไฟล์:" คุณสามารถระบุบางอย่างเช่น "*.txt" เพื่อค้นหาข้อความของคุณในไฟล์ข้อความเท่านั้น
ตอนนี้กรอก เนื้อหา: กล่อง. พิมพ์ข้อความที่มีไฟล์และกดปุ่ม Enter
จะค้นหาไฟล์ทั้งหมดที่ตรงกับเกณฑ์
แค่นั้นแหละ.