Yang -depthutama findmenyebabkannya melakukan pencarian kedalaman-pertama.
Namun, urutan default bukan pencarian pertama.
Urutan default dapat digambarkan secara informal sebagai "traversal kedalaman-pertama yang menangani node ketika mereka pertama kali ditemui daripada melakukannya selama backtracking."
Saya memiliki kebutuhan aktual untuk pencarian pertama yang luas. Bagaimana saya bisa findbersikap seperti ini?
Sebagai ilustrasi, dengan pengaturan berikut:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find memiliki perilaku default berikut:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
dan dengan -depth, ini berfungsi sebagai berikut:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Namun, yang saya inginkan adalah opsi (fiktif) berikut:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
Dengan kata lain saya perlu findmemproses / melaporkan semua file / dir pada kedalaman yang diberikan sebelum melanjutkan.
Bagaimana saya bisa melakukan ini?
-bfstidak akan seperti yang saya butuhkan ... Saya punya skrip sederhana yang menghasilkan indeks ke proyek GitLab besar, cocok untuk dimasukkan dalam GitLab Wiki. Itu membuat header secara hierarkis berdasarkan nama direktori. Ini berfungsi dengan baik, kecuali bahwa dalam struktur file contoh di atas itu akan diletakkan di deltabawah charliesubjudul, bukan di bawah alphatajuk induk .
findkeluaran yang diurutkan berdasarkan abjad. Tidak tahu mengapa ....
-bfs bisa berguna, bahkan jika itu tidak cocok dengan kasus penggunaan ini.
find(setidaknya, tidak hanya denganfind). Apakah Anda hanya ingin membuat daftar file, atau Anda ingin menggunakan pemilihan pendahuluan lainnya?