-depth
Podstawowej do find
powoduje, ż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ę find
zachowywać 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 -depth
zachowuje 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ę find
przetworzyć / 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 delta
pod nagłówkiem charlie
zamiast alpha
nagłówka nadrzędnego .
find
wyniki 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?