Linux tree ๋ช ๋ น์ด๋ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ณ์ธตํ ํธ๋ฆฌ ํํ๋ก ์ถ๋ ฅํด ํ๋ก์ ํธ ๋ถ์๊ณผ ์์ค ์ฝ๋ ํ์ ์ ๋น ๋ฅด๊ฒ ๋์์ค๋ค. ์ต์ ๋ณ ๊ธฐ๋ฅ๊ณผ ์ค์ ํ์ฉ๋ฒ๊น์ง ์์ธํ ์ ๋ฆฌํ๋ค.
1. Linux tree ๋ช ๋ น์ด๊ฐ ์ค์ํ๊ฐ?
ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก “ํด๋ ์์ ํด๋, ๊ทธ ์์ ๋ ํด๋”๊ฐ ๋ฐ๋ณต๋๋ฉด์ ๊ตฌ์กฐ ํ์
์ด ์ด๋ ค์์ง๋ค.
๋ง์ ์ด๋ณด์๋ ls๋ก๋ง ํ์ธํ๋ ค๊ณ ํ์ง๋ง, ์ผ์ ๊ท๋ชจ๋ฅผ ๋๋ ์๊ฐ ๊ตฌ์กฐ ์ ์ฒด๋ฅผ ์ดํดํ๋ ์ผ ์์ฒด๊ฐ ์๊ฐ ๋ญ๋น๊ฐ ๋๋ค.
์ด๋ด ๋ ํ์ํ ๊ฒ์ด ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ณ์ธตํ ํธ๋ฆฌ(tree) ๊ตฌ์กฐ๋ก ์๊ฐํํด์ฃผ๋ ๋ช
๋ น์ด๋ค.
๋ฐ๋ก tree.
tree๋ ๋จ์ํ ํด๋๋ฅผ ๋์ดํ๋ ๋๊ตฌ๊ฐ ์๋๋ผ:
- ํ๋ก์ ํธ ๋ผ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ๊ณ
- ์ค์ ํ์ผ ์์น๋ฅผ ์ฆ์ ํ์ธํ๋ฉฐ
- README๋ ๊ธฐ์ ๋ฌธ์์ ๋ฐ๋ก ์ฝ์ ํ ์ ์๊ณ
- ๋๋ฒ๊น ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ์ ๋ฆฌํด์ฃผ๋ฉฐ
- Python, Node.js, OpenWrt์ฒ๋ผ ๊ตฌ์กฐ๊ฐ ๋ณต์กํ ํ๊ฒฝ์์ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฅผ ๋นจ๋ฆฌ ์ฐพ๊ฒ ํด์ฃผ๋
๋ถ์ + ๋ฌธ์ํ + ์ ์ง๋ณด์ ์๋๊น์ง ๋์ฌ์ฃผ๋ ์ค์ ๋๊ตฌ๋ค.

2. tree ๋ช ๋ น์ด ์ค์น ๋ฐฉ๋ฒ
๋๋ถ๋ถ์ Linux ๋ฐฐํฌํ์์๋ ๊ธฐ๋ณธ ์ค์น๊ฐ ์๋๋ฏ๋ก ํจํค์ง ์ค์น๊ฐ ํ์ํ๋ค.
Ubuntu / Debian
sudo apt-get install tree
CentOS / RHEL / Fedora
sudo yum install tree
arch
sudo pacman -S tree
OpenWrt
OpenWrt์๋ tree๊ฐ ๊ธฐ๋ณธ ํจํค์ง๋ก ์กด์ฌํ๋ค.
opkg update
opkg install tree
3. tree ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ:
tree
์ถ๋ ฅ ์:
.
โโโ include
โโโ src
โ โโโ main.c
โ โโโ module
โ โโโ mod.c
โโโ README.md
. (ํ์ฌ ๋๋ ํฐ๋ฆฌ)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ํ์ผ๊ณผ ํด๋๋ฅผ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ถ๋ ฅํ๋ค.
์ ๋·์๋ ์ถ๋ ฅ ํํ ๋น๊ต

4. tree ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ต์ ์ ๋ฆฌ(์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
tree๋ ์๊ฐํ๋ฅผ ์ํ ์ต์ ์ด ๋งค์ฐ ๋ง์ง๋ง, ์ค์ ๋ก ๊ฐ์ฅ ์์ฃผ ์ฐ์ด๋ ์ต์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
| ์ต์ | ์ค๋ช |
| -L N | ์ถ๋ ฅ ๊น์ด ์ ํ |
| -d | ๋๋ ํฐ๋ฆฌ๋ง ํ์ |
| -a | ์จ๊น ํ์ผ ํฌํจ |
| -f | ์ ์ฒด ๊ฒฝ๋ก ์ถ๋ ฅ |
| -I pattern | ํน์ ํ์ผ·ํด๋ ์ ์ธ |
| -P pattern | ํน์ ํจํด๋ง ํฌํจ |
| -R | ํ์ ํธ๋ฆฌ ์ฌ๊ท |
| -h | ํ์ผ ํฌ๊ธฐ ํ์ (human readable) |
| -s | ํ์ผ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ๋ก ํ์ |
| -p | ๊ถํ ํ์ |
| -u | owner ํ์ |
| -g | group ํ์ |
| --du | ๋๋ ํฐ๋ฆฌ ํฌ๊ธฐ ์ดํฉ ํ์ |
5. ์ต์ ๋ณ ์ค์ ์์
1) -L ์ต์ : ๊น์ด ์ ํํ์ฌ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅ
๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ์ ์ฒด ํธ๋ฆฌ ์ถ๋ ฅ์ด ๋๋ฌด ๋ฐฉ๋ํ ์ ์๋ค.
์ด๋ -L ์ต์
์ผ๋ก ๊น์ด๋ฅผ ์ ํํ๋ฉด ๊ตฌ์กฐ๋ฅผ ๋จ๋ฒ์ ์ดํดํ ์ ์๋ค.
์์
tree -L 2
์ถ๋ ฅ ์:
.
โโโ include
โโโ src
โ โโโ main.c
โ โโโ module
โโโ README.md
2) -d ์ต์ : ๋๋ ํฐ๋ฆฌ๋ง ๋ณด๊ณ ์ถ์ ๋
๋๊ท๋ชจ ํ๋ก์ ํธ์์ ํ์ผ ์ ์ธํ๊ณ ํด๋ ๊ตฌ์กฐ๋ง ๋ณด๊ณ ์ถ์ ๋ ์ด๋ค.
tree -d
์ถ๋ ฅ ์:
.
โโโ include
โโโ src
โ โโโ main.c
โ โโโ module
โโโ README.md
ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ถ์ํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ์กฐํฉ์:
tree -d -L 3
3) -a ์ต์ : ์จ๊น ํ์ผ๊น์ง ํฌํจ
Linux๋ . ์ผ๋ก ์์ํ๋ ํ์ผ์ ์จ๊น ์ฒ๋ฆฌํ๋ค.
-a ์ต์
์ผ๋ก ์จ๊น ํ์ผ๊น์ง ๋ชจ๋ ๋ณด์ฌ์ค๋ค.
์:
tree -a
.git, .config, .vscode ๊ฐ์ ํด๋๊ฐ ๋ณด์ด๊ธฐ ์์ํ๋ค.
4) -I ์ต์ : ํน์ ํ์ผ·๋๋ ํฐ๋ฆฌ ์ ์ธ
ํน์ ํจํด์ ์ ์ธํ๊ณ ๋ณด๊ณ ์ถ์ ๋ ๋งค์ฐ ๊ฐ๋ ฅํ๋ค.
์:
tree -I "node_modules|build"
์ฌ๋ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ธํ๊ณ ์ถ์ ๋๋ |๋ก ๋ฌถ์ผ๋ฉด ๋๋ค.
5) -P ์ต์ : ํน์ ํจํด๋ง ํฌํจ
์:
tree -P "*.c"
์ถ๋ ฅ:
main.c
mod.c
C ํ๋ก์ ํธ์ ํ์ผ ๊ตฌ์กฐ๋ง ๋ณด๊ณ ์ถ์ ๋ ๋งค์ฐ ์ ์ฉํ๋ค.
6) -f ์ต์ : ์ ์ฒด ๊ฒฝ๋ก๋ก ์ถ๋ ฅ
์ผ๋ฐ tree๋ ์๋ ๊ฒฝ๋ก(ํ์ฌ ๋๋ ํฐ๋ฆฌ ๊ธฐ์ค)๋ง ๋ณด์ฌ์ฃผ์ง๋ง, -f๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค.
์:
tree -f
์ถ๋ ฅ:
./src/module/mod.c
./README.md
์คํฌ๋ฆฝํธ์์ ๋๋ ํฐ๋ฆฌ ์ถ์ ์ ์๋ํํ ๋ ์ ์ฉํ๋ค.
7) -p, -u, -g : ํ์ผ ๊ถํ ๋ฐ ์์ ์ ํ์ธ
tree๋ ํ์ผ ๊ตฌ์กฐ๋ฟ ์๋๋ผ ๊ถํ๋ ํจ๊ป ๋ณผ ์ ์๋ค.
์:
tree -pug
์ถ๋ ฅ ์:
-rw-r--r-- user group main.c
์์คํ ๊ด๋ฆฌ์์๊ฒ ๋งค์ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ด๋ค.
8) -h / -s / --du : ํ์ผ·ํด๋ ํฌ๊ธฐ ์๊ฐํ
์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ๋จ์(KB, MB)๋ก ์ถ๋ ฅ
-h
๋ฐ์ดํธ ๋จ์ ํ์ผ ํฌ๊ธฐ ์ถ๋ ฅ
-s
๋๋ ํฐ๋ฆฌ ํฌ๊ธฐ ์ดํฉ ํ์
--du
์:
tree -h --du

6. ์ค์ ํ์ฉ ์๋๋ฆฌ์ค 12๊ฐ์ง
1) ํ๋ก์ ํธ ์ ์ฒด ๊ตฌ์กฐ ํ๋์ ํ์
์คํ์์ค ํ๋ก์ ํธ ๋ค์ด๋ก๋ ํ ๊ฐ์ฅ ๋จผ์ ์คํํ๋ ๋ช ๋ น:
tree -L 2
2) Python ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ ๋ถ์
tree -h -L 3 -I "__pycache__"
3) Node.js ํ๋ก์ ํธ ๊ตฌ์กฐ ํ์ธ
tree -L 3 -I "node_modules"
4) OpenWrt ๋น๋ ์์คํ ๊ตฌ์กฐ ์ดํด
OpenWrt๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ญ ๊ฐ ์ด์์ด๋ฏ๋ก tree ์ฌ์ฉ์ด ๋งค์ฐ ์ ์ฉํ๋ค.
์:
tree -L 2 -d
์ถ๋ ฅ ์:
.
โโโ package
โโโ scripts
โโโ target
โโโ toolchain
โโโ tools
5) ์ค์ ํ์ผ ์ฐพ๊ธฐ
์:
tree -P "*.conf"
6) gcc ํค๋ ํ์ผ ์์น ์ฐพ๊ธฐ
tree /usr/include -P "*.h" -L 2
7) ๊ถํ ๋ฌธ์ ๋๋ฒ๊น
tree -pug -L 3 /var/www
8) ํ์ผ ์ฉ๋์ด ๋น์ ์์ ์ผ๋ก ํฐ ํด๋ ์ฐพ๊ธฐ
tree -h --du | sort -h
9) README.md์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ ์ฝ์
๋ง์ ์คํ์์ค README๋ค์ tree ํ์ ์ถ๋ ฅ๋ฌผ์ ํฌํจํ๋ค.
tree -L 3 > tree.txt
10) ๋ฐฑ์ ์คํฌ๋ฆฝํธ ๊ฒฝ๋ก ๊ฒ์ฆ
tree -f > backup_paths.log
11) gitignore ๊ฒ์ฆ
tree -a -I "$(cat .gitignore | tr '\n' '|')"
12) C ํ๋ก์ ํธ์ include ๊ตฌ์กฐ ํ์ธ
tree -L 3 -P "*.h"
7. tree ๋ช ๋ น์ด์ ์จ๊ฒจ์ง ๊ธฐ๋ฅ
1) ANSI ์์ ์ถ๋ ฅ
๊ธฐ๋ณธ์ ์ผ๋ก ์ปฌ๋ฌ๊ฐ ํ์๋์ง๋ง, ๊ฐ์ ์ ์ฉ ๊ฐ๋ฅ:
tree -C
2) ์๊ฐํ ๋ ธ๋ ๋ฌธ์ ๋ณ๊ฒฝ
ASCII ๋ชจ๋:
tree -A
์ ๋์ฝ๋ ๋ชจ๋:
tree -N
3) ์ ๋ ฌ ๊ธฐ์ค ๋ณ๊ฒฝ
ํ์ผ ํฌ๊ธฐ ๊ธฐ์ค:
tree --sort=size
ํ์ฅ์ ๊ธฐ์ค:
tree --sort=extension
8. ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
1) ๋๊ท๋ชจ ํ์ผ ์์คํ ์ถ๋ ฅ ์๊ฐ ์ฆ๊ฐ
์์ญ๋ง ํ์ผ์ ๊ฐ์ง ๋๋ ํฐ๋ฆฌ์์ tree๋ฅผ ์คํํ๋ฉด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค.
→ -L ์ต์
์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์์ ์ .
2) ์จ๊น ํ์ผ ๋ง์ผ๋ฉด ์ถ๋ ฅ ๋๋ฌด ๊ธธ์ด์ง
→ -I๋ก ์ ์ธ ํ์.
3) root๋ก ์คํ ์ ํ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ ๋ ธ์ถ ๊ฐ๋ฅ
→ ๊ถํ์ ์ฃผ์
9. tree ๋ช ๋ น์ด ์์ฃผ ๋ฌป๋ ์ง๋ฌธ(FAQ)
Q1. tree๊ฐ ์ค์น ์ ๋์ด ์์ด์.
๋๋ถ๋ถ์ ๋ฐฐํฌํ์์ ๊ธฐ๋ณธ ์ค์น๊ฐ ์๋๋ฏ๋ก ํจํค์ง ์ค์น๊ฐ ํ์ํ๋ค.
Q2. ํน์ ํด๋๋ง ์ ์ธํ๊ณ ์ถ๋ ฅํ ์ ์๋์?
๊ฐ๋ฅํ๋ค. -I "ํด๋๋ช |ํด๋๋ช " ํจํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
Q3. ํ์ผ ํฌ๊ธฐ๊น์ง ๋ณด๊ณ ์ถ์ด์.
tree -h --du
Q4. ๊ถํ·์์ ์๋ฅผ ํจ๊ป ๋ณผ ์ ์๋์?
๊ฐ๋ฅํ๋ค.
tree -pug
Q5. Markdown์์ tree ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅํ๋ ค๋ฉด?
์ฝ๋๋ธ๋ก(```)์ ๋ฃ์ผ๋ฉด ๋๋ค.
10. ๋ง๋ฌด๋ฆฌ - Linux tree ๋ช ๋ น์ด๋ ์ด๋ค ํจ๊ณผ๋ฅผ ์ฃผ๋๊ฐ?
tree ๋ช
๋ น์ด๋ ๊ตฌ์กฐ๋ฅผ “๋ณด์ด๊ฒ” ๋ง๋๋ ๋๊ตฌ๋ค.
๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ดํดํ๋ฉด ๊ฐ๋ฐ ์๋๋ ๋ฌผ๋ก ๋๋ฒ๊น
๋ฅ๋ ฅ๋ ํฌ๊ฒ ์ฌ๋ผ๊ฐ๋ค. .
“๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ์ฌ๋์ ๋ฌธ์ ๋ฅผ ๋ ์ ๊ฒ ๋ง๋ค๊ณ ๋ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๋ค.”
tree๋ ๊ทธ ๊ตฌ์กฐ๋ฅผ ‘๋์์ ๋ณด์ด๊ฒ’ ํด์ค๋ค.
์ด์ ๊ธ ๋ณด๊ธฐ
[LINUX] cd ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ 200% ์ดํดํ๊ธฐ: ์ค์ ์ฌ๋ก + ๊ฟํ ๋ชจ์ ๐๋ค์๊ธ ๋ณด๊ธฐ
[Linux] mkdir -p ์ค๋ฌด ํ์ฉ๋ฒ๋ถํฐ ์ค๋ฅ ํด๊ฒฐ๊น์ง ํ ๋ฒ์ ๋ฐฐ์ฐ๊ธฐ ๐