답변:
한 가지 방법은 -I
및 -P
스위치에 패턴을 사용하는 것입니다 .
tree -f -I "bin|unitTest" -P "*.[ch]|*.[ch]pp." your_dir/
는 -f
각 파일의 전체 경로를 출력하고, -I
패턴에서 제외 파일은 여기에 수직 막대로 구분. -P
스위치 inlcudes는 파일 만 특정 확장자를 패턴 매칭에 나열된.
sed: illegal option -- I
사용 find
및 tree
사용의 발견이다 명령의 prune
검색 및 사용의 디렉토리를 제외하는 tree -P
패턴을 검색하십시오.
예를 들어 misc
디렉토리 를 제외하려면 -path ./misc -prune -o
find 명령에 a 를 추가 하십시오.
예를 들어. find . -path ./misc -prune -o -exec tree -P <pattern> {} \;
또는 당신은 사용할 수 있습니다-name "*.cpp" in find
여러 디렉토리 사용을 제외하기 위해
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o
또는find . -path ./misc -prune -o -exec tree -P *.cpp {} \;
진정한 해결책은 전체 경로를 출력하고 원하지 않는 경로를 걸러 내고 최종적으로 출력을 수정하는 것입니다.
tree -df | egrep -v "\./(bin|unitTest)/.*" | sed -r 's%\./.*/%%g'
출력에 모든 파일이 필요한 경우 "d"매개 변수를 제거하십시오.
일본어를 이해할 수있는 경우 http://qaon.net/press/archives/572 에서 자세한 설명을 볼 수 있습니다 .
-I bin
not)-I bin/
.