Получение дерева для отображения только файлов, соответствующих шаблону, и каталогов, в которых они содержатся

Получение дерева для отображения только файлов, соответствующих шаблону, и каталогов, в которых они содержатся

Можно ли как-то заставить его treeвести себя так, чтобы при запуске с этой -Pопцией он не выводил каталоги, в которых нет файлов, соответствующих шаблону?

В качестве примера возьмем такую ​​структуру каталогов:

${DIRECTORY}/
 runtime/
  runtime_library.so
  runtime_library.a
 my_libraries/
  drawing/
   drawing.so
  basic_functions/
   basic.a
 documents/
  manual.txt
 empty/

Я хотел бы получить treeвывод этого:

${DIRECTORY}/
 my_libraries/
  basic_functions/
   basic.a
 runtime/
  runtime_library.a

решение1

Я полагаю, вам нужны только каталоги, соответствующие определенному шаблону, поэтому вам нужна эта -Pопция, т.е.

tree -P "*.a" --prune

Вышеуказанный код вернет все каталоги, содержащие файлы с расширением .a.страница руководстваtreeможет помочь вам в дальнейшем. Например, чтобы игнорировать шаблон, вы можете использовать option -I.

Опция --pruneподавит вывод разделов дерева, в которых каталоги не содержат файлы, соответствующие шаблону.

Связанный контент