tree(CLI)

2021년 8월 27일 수정

≡ 목차 (Table of Contents)

tree

tree는 현재 디렉토리의 내용을 트리 구조로 보여주는 CLI 유틸리티다. 한눈에 디렉토리 구조를 파악하기에 용이하다. du와 비슷하게도 볼 수 있겠지만 용도는 좀 다른 것 같기도 하다.

macOS에서는 Homebrew를 통해 간단히 설치할 수 있다.

brew install tree

간단한 사용법

그냥 터미널에서 tree 를 입력하면 현재 디렉토리 내부의 모든 하위 디렉토리와 파일들을 트리 구조로 보여준다.

$ tree
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
    ├── debug
    │   ├── build
    │   │   ├── libc-0d6bb5bc675e66f8
    │   │   │   ├── build-script-build

...

        ├── storage.js
        ├── theme.js
        └── wheel.svg

82 directories, 5516 files

근데 내용물이 너무 많다. 이럴 때는 -L 옵션을 이용해 레벨 즉 하위 디렉토리 깊이를 제한할 수 있다.

$ tree -L 2
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
    ├── debug
    └── doc

4 directories, 3 files

혹은 특정 디렉토리나 파일을 무시하기 위해 -I 옵션을 사용할 수도 있다.

$ tree -I "target"
.
├── Cargo.lock
├── Cargo.toml
└── src
    └── main.rs

1 directory, 3 files

-I 옵션은 패턴 형태를 사용할 수 있다. 예를 들어 아래와 같이 여러 패턴을 | 심볼을 이용해 지정해 줄 수 있다.

$ tree -I "debug|doc"
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target

2 directories, 3 files

위의 경우는 debugdoc 파일을 무시하도록 한 설정이다. 이 외에도 와일드카드 등을 이용해 일부 패턴을 입력하는 등 패턴을 좀 더 유용하게 설정할 수도 있다.

이 외에 -C 옵션을 이용해 컬러를 부여하는 등 기능이 매우 많다. 필요하다면 man tree 명령을 통해 맨페이지를 확인하거나 tree --help 명령으로 간단하게 확인해보자.