개요
리눅스 환경에서 복잡한 파일과 폴더 계층 구조를 한눈에 파악할 수 있는 tree 명령어의 핵심 기능과 실무 활용 팁을 정리합니다. 패키지 설치부터 계층 깊이 제한, 숨김 파일 및 권한 표시, 패턴 필터링까지 다양한 예제와 함께 살펴봅니다. 터미널 환경에서 프로젝트 구조를 직관적으로 파악하고 문서화하는 효율적인 방법을 안내합니다.
tree 패키지 설치 및 기본 디렉터리 트리 시각화
tree 명령어 실습을 진행하기 위해 패키지 목록을 갱신하고 tree 유틸리티를 설치합니다.

실습에 사용할 예제 디렉터리 구조를 생성하기 위해 mkdir -p demo_project/src demo_project/docs demo_project/tests 명령어를 실행합니다.

각 디렉터리 내에 배치할 샘플 파일들을 생성하기 위해 touch 명령어를 실행합니다.

tree 명령어는 지정한 디렉터리의 하위 구조를 계층적인 트리 형태로 시각화하여 출력합니다.
옵션 없이 실행하면 모든 하위 디렉터리와 파일을 재귀적으로 탐색하여 전체 목록과 개수 통계를 함께 표시합니다.
⚙️ [주요 옵션]
-a : 점(.)으로 시작하는 숨김 파일을 포함하여 모든 항목을 출력합니다.-d : 파일은 제외하고 디렉터리 목록만 출력합니다.-L level : 트리를 탐색할 최대 디렉터리 깊이를 지정합니다.-f : 각 파일과 디렉터리의 전체 상대 경로를 함께 출력합니다.-p : 파일 형식과 접근 권한(permission) 정보를 함께 표시합니다.-h : 파일 크기를 사람이 읽기 쉬운 단위(KB, MB, GB)로 표시합니다.-s : 각 파일의 크기를 바이트 단위로 표시합니다.-I pattern : 지정한 와일드카드 패턴과 일치하는 파일이나 디렉터리를 출력에서 제외합니다.

탐색 깊이 제한(-L) 및 디렉터리 전용 출력(-d)
깊이 제한 및 디렉터리 필터링 실습을 위한 추가 하위 디렉터리를 생성하기 위해 mkdir -p demo_project/src/components demo_project/src/assets/images 명령어를 실행합니다.

새로 생성한 디렉터리 내에 배치할 샘플 파일들을 만들기 위해 touch demo_project/src/components/button.py demo_project/src/assets/images/logo.png 명령어를 실행합니다.

tree -L 2 demo_project 명령어는 디렉터리 탐색 깊이를 최대 2단계로 제한하여 출력합니다.
3단계 이하의 깊은 경로에 있는 파일과 디렉터리는 생략되므로 복잡한 프로젝트의 상위 계층 구조를 한눈에 파악하기 좋습니다.

tree -d demo_project 명령어는 일반 파일을 모두 제외하고 오직 디렉터리 목록만 계층 구조로 출력합니다.
파일 개수가 많은 환경에서도 프로젝트의 전체적인 폴더 트리 구조를 깔끔하게 파악할 수 있습니다.

숨김 파일 표시(-a)와 파일 권한 및 용량 확인(-p, -h)
숨김 파일 조회 실습을 위해 touch demo_project/.env demo_project/.gitignore 명령어로 점(.)으로 시작하는 예제 설정 파일들을 생성합니다.

파일 권한 표시 실습을 위해 chmod 600 demo_project/.env 명령어를 실행하여 .env 파일의 접근 권한을 소유자 전용으로 변경합니다.

tree -a demo_project 명령어는 기본 출력에서 제외되는 점(.)으로 시작하는 숨김 파일을 포함하여 전체 구조를 시각화합니다.
출력 결과를 통해 루트 경로에 위치한 .env와 .gitignore 파일이 트리 목록에 정상적으로 표시되는 것을 확인할 수 있습니다.

tree -p -h demo_project 명령어는 각 항목의 파일 접근 권한(-p)과 사람이 읽기 쉬운 용량 단위(-h)를 함께 표시합니다.
디렉터리 계층 구조와 함께 각 파일의 권한 설정 상태 및 용량 정보를 한눈에 직관적으로 점검할 수 있습니다.

특정 패턴 필터링(-P, -I) 및 HTML 보고서 생성(-H, -o)
패턴 필터링 실습에 사용할 임시 로그 파일과 캐시 파일을 생성하기 위해 touch demo_project/temp.log demo_project/debug.tmp 명령어를 실행합니다.

tree -P "*.py" demo_project 명령어는 지정한 와일드카드 패턴과 일치하는 파이썬(.py) 파일만 포함하여 계층 구조를 시각화합니다.
특정 확장자를 가진 파일만 선별하여 보여주므로 소스 코드 파일의 배치 현황을 집중적으로 파악할 때 유용합니다.

tree -I "*.tmp|*.log" demo_project 명령어는 파이프(|) 기호로 지정한 제외 패턴과 일치하는 임시 파일들을 트리 출력에서 숨깁니다.
불필요한 로그나 임시 파일들을 걸러내어 프로젝트 본래의 핵심 소스 및 문서 구조만 깔끔하게 확인할 수 있습니다.

tree -H http://localhost -o demo_project/structure.html demo_project 명령어는 디렉터리 트리 결과를 클릭 가능한 링크가 포함된 HTML 웹 문서로 변환하여 파일로 저장합니다.
지정한 기본 URL(http://localhost)을 기반으로 파일 링크가 구성되므로 웹 브라우저를 통한 시각화 및 문서 보고서로 활용하기 좋습니다.

생성된 HTML 보고서의 내부 마크업 구조와 메타데이터 형식을 확인하기 위해 head -n 15 demo_project/structure.html 명령어를 실행합니다.

지금까지 우분투 환경에서 tree 명령어로 디렉터리 구조를 시각화하고 실무에 유용하게 활용하는 방법들을 살펴보았습니다.
필요한 옵션들을 적절히 조합해 복잡한 폴더 구조를 한눈에 파악하고 깔끔하게 문서화해 보세요.