Linux ค้นหาโฟลเดอร์ในโฟลเดอร์ย่อย


17

ฉันพยายามค้นหาไดเรกทอรีที่ชื่อ 480debugerror ซ้อนอยู่ภายใต้ไดเรกทอรีย่อย ฉันไม่ทราบเส้นทางที่แน่นอนหรือแม้ว่าฉันจะมีการสะกดของไดเรกทอรีที่ฉันต้องการค้นหา

มีคำสั่ง Linux เพื่อค้นหาไดเรกทอรีที่มีคำนำหน้าหรือคำต่อท้ายที่กำหนดหรือไม่ตัวอย่างเช่นไดเรกทอรีที่มีชื่อ "debug" หรือ "debug error" พร้อมคำนำหน้าหรือคำต่อท้ายบางคำที่ไม่รู้จัก?


2
คุณสามารถลอง locate (หาตำแหน่งไฟล์) หรือ find (ค้นหาไฟล์)
miku

ค้นหา -type f -name * ummy ... แต่ไม่ได้รับ

2
คุณต้องการ -type d . f ค้นหาไฟล์
thkala

คำตอบ:


14

find คือสิ่งที่คุณต้องการ:

$ find -type d -name '*debugerror*'

หรือ

$ find -type d -name '480debugerror'

หากคุณแน่ใจเกี่ยวกับชื่อโฟลเดอร์



1
locate -i "480debugerror"

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

locate -i "debug" | grep -i "log"

ซึ่งค้นหาไฟล์ทั้งหมดที่มีในเส้นทางของพวกเขา (ไม่ว่าในกรณีใด [นั่นคือสิ่งที่ฉันหมายถึง]) "debug" และ "log" (ในกรณีที่คุณไม่ทราบ | grep หมายถึงการค้นหาภายในผลลัพธ์ที่ค้นหาการผลิต)

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


เฉพาะในกรณีที่คุณมี slocate การติดตั้ง สภาพแวดล้อมการผลิตบางอย่างไม่ :-(
Zsolt Botykai

จริง แต่ถ้าตัวเลือกฉันจะบอกว่ามันยอดเยี่ยมกว่าที่จะหา ...

1

ในทุบตี

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

ค้นหาแบบวนซ้ำสำหรับไดเรกทอรีที่มีชื่อประกอบด้วย 480, debug หรือ error

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.