ผมเริ่มต้นในลินุกซ์และฉันต้องการค้นหาสำหรับทุกไฟล์ใน.conf
/etc/
ฉันพยายามgrep -r *.conf /etc
แต่ผลลัพธ์ไม่ถูกต้อง
ผมทำอะไรผิดหรือเปล่า?
ผมเริ่มต้นในลินุกซ์และฉันต้องการค้นหาสำหรับทุกไฟล์ใน.conf
/etc/
ฉันพยายามgrep -r *.conf /etc
แต่ผลลัพธ์ไม่ถูกต้อง
ผมทำอะไรผิดหรือเปล่า?
คำตอบ:
เพียงกดCtrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:
find . -type f -name "*.txt"
.txt
นี้จะแสดงรายการไฟล์ทั้งหมดที่มีนามสกุล
.
ที่เริ่มต้นหมายถึงไดเรกทอรีปัจจุบัน find
ค้นหาซ้ำในไดเรกทอรีทั้งหมดด้านล่างเส้นทางที่กำหนด หากคุณต้องการให้การค้นหาเริ่มต้นที่อื่นที่ไม่ใช่ไดเร็กทอรีการทำงานปัจจุบันให้ระบุพา ธ ตัวอย่างเช่น:
find /etc -type f -name "*.conf"
ค้นหา/etc
ไดเร็กทอรีและไดเร็กทอรีย่อยทั้งหมดเพื่อหาไฟล์ปกติที่มี.conf
นามสกุล
find
มีการใช้กันอย่างแพร่หลายมีเอกสารที่ดีมากและมี StackOverflow / แลกเปลี่ยนโพสต์มากมายเกี่ยวกับเรื่องนี้ว่ามันยากที่จะหาสิ่งที่ง่ายต่อการทำงานด้วย ทุกสิ่งที่คุณต้องการทำถูกเขียนขึ้นทางออนไลน์ที่ไหนสักแห่ง
ฉันเองใช้find
แต่คุณสามารถ glob สำหรับสิ่งเหล่านี้ด้วย:
shopt -s globstar
ls /etc/{,**/}*.conf
และคุณสามารถใช้ค้นหาและรวดเร็ว แต่ไม่น่าเชื่อถือ
locate '/etc/**.conf'
locate
น่าเชื่อถือ
locate
อาศัยฐานข้อมูล mlocate ที่ได้รับการอัปเดตเมื่อเร็ว ๆ นี้เพื่อความถูกต้อง ตามค่าเริ่มต้นที่กำหนดให้อัปเดตวันละครั้งเท่านั้น (แม้ว่าคุณจะบังคับให้ใช้งานด้วยตนเองupdatedb
)
grep
ค้นหาเนื้อหาของไฟล์ไม่ใช่ชื่อไฟล์
ในการค้นหา.conf
ไฟล์ทั้งหมดที่/etc/
คุณต้องการ:
find /etc -name "*.conf"
คำสั่ง find ช้าใช้คำสั่งนี้จะให้ผลลัพธ์ทันที:
locate "/etc/*.conf"
ข้อมูลเพิ่มเติมเกี่ยวกับlocate
คำสั่ง (ในmlocate
แพ็คเกจ) สามารถดูได้ที่นี่: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
locate
ถูกกล่าวถึงเมื่อสองปีที่แล้ว: askubuntu.com/a/333728/158442