Czy możesz podać przykład użycia polecenia drzewa do odfiltrowania wyniku w następujący sposób:
- ignorować katalogi (powiedzmy
bin
,unitTest
) - wymieniając tylko niektóre pliki posiadające rozszerzenia (powiedzmy
.cpp
,.c
,.hpp
,.h
) - podając pełne nazwy ścieżek tylko wynikowych plików spełniających kryteria.
tree
command-switch
Linda
źródło
źródło
-I bin
Nie-I bin/
.sed: illegal option -- I
użyj
find
i użyjtree
polecenia find,prune
aby wykluczyć katalogi wyszukiwania i użyćtree -P
do wyszukiwania wzorca.Użyj przełącznika przycinania, na przykład jeśli chcesz wykluczyć
misc
katalog, po prostu dodaj-path ./misc -prune -o
polecenie do polecenia find.na przykład
find . -path ./misc -prune -o -exec tree -P <pattern> {} \;
lub możesz użyć-name "*.cpp" in find
do wykluczenia korzystania z wielu katalogów
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
źródło
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
lubfind . -path ./misc -prune -o -exec tree -P *.cpp {} \;
Prawdziwym rozwiązaniem jest wyprowadzenie pełnych ścieżek, odfiltrowanie niechcianych ścieżek, a na końcu naprawienie wyników.
Jeśli wszystkie pliki są potrzebne na wyjściu, usuń parametr „d”.
Szczegółowe wyjaśnienie można znaleźć na stronie: http://qaon.net/press/archives/572, jeśli rozumiesz japoński.
źródło