Você poderia me dar um exemplo do uso do comando tree para filtrar o resultado da seguinte maneira:
- ignorar diretórios (digamos
bin
,unitTest
) - única listagem de determinados arquivos com extensões (digamos
.cpp
,.c
,.hpp
,.h
) - fornecendo nomes de caminho completos apenas dos arquivos resultantes que correspondem aos critérios.
tree
command-switch
Linda
fonte
fonte
-I bin
, não-I bin/
.sed: illegal option -- I
use
find
etree
comando que é use find'sprune
para excluir diretórios de pesquisa e usetree -P
para pesquisar o padrão.Use a opção de remoção, por exemplo, se você deseja excluir o
misc
diretório, basta adicionar a-path ./misc -prune -o
ao seu comando find.por exemplo.
find . -path ./misc -prune -o -exec tree -P <pattern> {} \;
ou você pode usar-name "*.cpp" in find
para excluir vários diretórios, use
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
fonte
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
oufind . -path ./misc -prune -o -exec tree -P *.cpp {} \;
A verdadeira solução é gerar caminhos completos, filtrar caminhos indesejados e finalmente corrigir as saídas.
Se todos os arquivos forem necessários na saída, remova o parâmetro "d".
Uma explicação detalhada pode ser encontrada em: http://qaon.net/press/archives/572 se você puder entender japonês.
fonte