Linux tree 명령어 활용법: 디렉터리 구조 시각화하기

디렉터리 구조를 계층적으로 확인해야 할 때 tree 명령어는 매우 유용한 도구입니다. 파일 시스템의 폴더와 파일을 나무 형태로 표현하여 복잡한 중첩 구조를 한눈에 파악할 수 있게 해줍니다.

핵심 옵션 정리

옵션기능 설명
-a숨김 파일 포함 모든 항목 표시
-d디렉터리만 출력
-L 숫자탐색 깊이 제한
-I 패턴특정 패턴 제외
-P 패턴특정 패턴만 포함
-f전체 경로 표시
-p한 정보 함께 출력
-h가독성 좋은 파일 크기 표시
-o 파일결과를 파일로 저장
-C색상 구분 적용
-JJSON 형식 출력
-XXML 형식 출력

실전 활용 예시

기본 디렉터리 구조 확인

별도 인자 없이 실행하면 현재 위치의 모든 하위 항목을 트리 구조로 보여줍니다.

$ tree
.
├── docs
│   └── manual.md
├── src
│   ├── utils
│   │   └── helper.py
│   └── main.py
└── README.txt

3 directories, 3 files

폴더만 추려서 보기

파일은 제외하고 디렉터리 구조만 확인할 때 사용합니다.

$ tree -d
.
├── docs
└── src
    └── utils

3 directories

깊이 제한 탐색

대규모 프로젝트에서 전체 구조를 볼 필요 없이 특정 레벨까지만 살펴볼 수 있습니다.

$ tree -L 2 /var/log
/var/log
├── apt
│   ├── history.log
│   └── term.log
├── nginx
│   ├── access.log
│   └── error.log
└── syslog

3 directories, 4 files

불필요한 항목 필터링

빌드 결과물이나 의존성 폴더를 제외하고 소스 코드 구조만 파악할 때 유용합니다.

# 여러 패턴 동시 제외
$ tree -I 'dist|build|*.pyc'

# 특정 폴더만 제외
$ tree -I __pycache__

특정 항목만 선택적으로 표시

패턴 매칭으로 필요한 파일만 골라볼 수 있습니다.

# Python 파일만 보기
$ tree -P '*.py'

# 특정 폴더 구조만 보기 (2단계 제한)
$ tree -P 'node_modules' -L 2

결과 파일로 저장

리다이렉션을 활용해 문서화용으로 구조를 저장합니다.

$ tree -L 3 -o project_structure.txt

권한과 크기 정보 함께 확인

상세 정보가 필요한 경우 여러 옵션을 조합합니다.

$ tree -ph -L 2
.
├── [drwxr-xr-x]  docs
│   └── [-rw-r--r--]  4.0K    manual.md
└── [drwxr-xr-x]  src
    ├── [drwxr-xr-x]  utils
    └── [-rw-r--r--]  12K     main.py

3 directories, 2 files

JSON 형식 데이터 추출

프로그램에서 파싱하거나 API 응답으로 활용할 수 있는 구조화된 데이터를 얻습니다.

$ tree -J -L 2
[{"type":"directory","name":".","contents":[
  {"type":"directory","name":"docs","contents":[
    {"type":"file","name":"manual.md"}
  ]},
  {"type":"directory","name":"src","contents":[
    {"type":"directory","name":"utils"},
    {"type":"file","name":"main.py"}
  ]}
]}]

설치 방법

일부 배포판에는 기본 설치되어 있지 않을 수 있습니다.

# Debian/Ubuntu
$ sudo apt install tree

# RHEL/CentOS/Fedora
$ sudo yum install tree
# 또는
$ sudo dnf install tree

# macOS
$ brew install tree

태그: linux tree command-line filesystem bash

6월 19일 17:18에 게시됨