Yang -depth
utama find
menyebabkannya 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 find
bersikap 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 find
memproses / melaporkan semua file / dir pada kedalaman yang diberikan sebelum melanjutkan.
Bagaimana saya bisa melakukan ini?
-bfs
tidak 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 delta
bawah charlie
subjudul, bukan di bawah alpha
tajuk induk .
find
keluaran 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?