-depth
Початкова школа до find
змушує його виконати пошук в глибині.
Однак послідовність за замовчуванням не є першим пошуком.
Послідовність за замовчуванням може бути неофіційно описана як "обхід першої глибини, який обробляє вузли під час їх першої зустрічі, а не під час зворотного відстеження".
У мене є актуальна потреба в першому пошуку. Як я можу змусити find
себе вести себе таким чином?
Для ілюстрації з наступним налаштуванням:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find
має таке поведінку за замовчуванням:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
і з -depth
, він виконує так:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Однак я хочу наступний (вигаданий) варіант:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
Іншими словами, мені потрібно find
обробити / повідомити про всі файли / файли на заданій глибині, перш ніж продовжувати.
Як я можу це зробити?
-bfs
буде не зовсім те, що мені потрібно ... У мене є простий скрипт, який генерує індекс для великого проекту GitLab, придатного для включення в GitLab Wiki. Це робить заголовки ієрархічно на основі імен каталогів. Це чудово працює, за винятком того, що в прикладі структури файлів вище він буде розміщений delta
під charlie
підзаголовком, а не під головним alpha
заголовком.
find
вихід в алфавітному порядку. Не маю ідеї, чому ....
-bfs
може стати в нагоді, навіть якщо це ідеально не відповідає цьому випадку використання.
find
(принаймні, не тількиfind
). Ви хочете лише перелічити файли, або ви хочете використовувати інші праймери?