-depthPodstawowej do findpowoduje, że aby przeprowadzić przeszukiwanie w głąb.
Jednak domyślna sekwencja nie jest szerokim wyszukiwaniem.
Domyślna sekwencja może być nieformalnie opisana jako „przejście przez pierwszą głębokość, która obsługuje węzły, gdy są one po raz pierwszy napotykane, zamiast robić to podczas cofania”.
Naprawdę potrzebuję pierwszego wyszukiwania. Jak mogę się findzachowywać w ten sposób?
Na przykład z następującą konfiguracją:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find ma następujące domyślne zachowanie:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
i przy -depthzachowuje się następująco:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Chcę jednak następującej (fikcyjnej) opcji:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
Innymi słowy muszę findprzetworzyć / zgłosić wszystkie pliki / katalogi na określonej głębokości, zanim przejdę dalej.
Jak mogę to zrobić?
-bfsże nie byłoby to dokładnie to, czego potrzebuję ... Mam prosty skrypt, który generuje indeks dużego projektu GitLab, odpowiedni do włączenia na Wiki GitLab. To sprawia, że nagłówki są hierarchicznie oparte na nazwach katalogów. Działa świetnie, z tym wyjątkiem, że w powyższej przykładowej strukturze pliku zostałby umieszczony deltapod nagłówkiem charliezamiast alphanagłówka nadrzędnego .
findwyniki są sortowane alfabetycznie. Nie mam pojęcia, dlaczego ....
-bfs może się przydać, nawet jeśli nie pasuje idealnie do tego przypadku użycia.
find(przynajmniej nie tylkofind). Czy chcesz tylko wyświetlić listę plików, czy chcesz użyć innych podstawowych?