Fazendo com que a árvore liste apenas os arquivos que correspondem a um padrão e os diretórios em que estão contidos

Fazendo com que a árvore liste apenas os arquivos que correspondem a um padrão e os diretórios em que estão contidos

Existe alguma maneira de treese comportar de tal forma que, quando executado com a -Popção, não gerará diretórios que não possuem arquivos que correspondam ao padrão em algum lugar dentro deles?

Como exemplo, tome esta estrutura de diretórios:

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

Eu gostaria de treeproduzir isso:

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

Responder1

Eu acho que você só quer diretórios que correspondam a um padrão específico, então você precisa da -Popção, ou seja

tree -P "*.a" --prune

O acima retornará todos os diretórios que contêm arquivos com a extensão .a. Opágina de manual detreepode ajudá-lo ainda mais. Por exemplo, para ignorar um padrão, você pode usar a opção -I.

A --pruneopção suprimirá a saída de seções da árvore onde os diretórios não contêm arquivos que correspondam ao padrão.

informação relacionada