본문 바로가기
C.W.K.
Stream
Lesson 11 of 12 · published

tree: 디렉터리 시각화

~8 min · tree, visualization

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

ls -R보다 읽기 쉬운 디렉터리 그림

ls -R도 하위 경로를 나열하지만 구조를 따라가기 어려워. tree는 ASCII 가지로 중첩을 보여 줘. macOS에서는 brew install tree로 설치하고, Linux 배포판에서는 패키지 관리자로 설치할 수 있어. 경로가 들여쓰인 가지로 보이기 때문에 부모와 자식 관계를 빠르게 읽을 수 있어.

자주 쓰는 플래그

  • -L 2: 깊이를 2단계로 제한해.
  • -d: 디렉터리만 보여 줘.
  • -a: 숨김 항목도 포함해.
  • -h: -s--du와 함께 읽기 쉬운 크기를 표시해.
  • -I 'pattern|other': 이름 패턴을 제외해.
  • --gitignore: .gitignore의 제외 규칙을 적용해.

다른 프로그램이 읽을 출력 형식

tree -J는 JSON, tree -X는 XML을 출력해. 디렉터리 구조를 스크립트나 문서 생성기에 넘길 때 사용할 수 있어.

프로젝트 구조를 설명할 때

tree -L 2 -I 'node_modules|.git'처럼 질문에 필요한 깊이와 제외 규칙을 정한 뒤 출력을 문서에 넣어. 작은 구조 그림이 긴 경로 설명보다 빠르게 경계를 보여 줄 때가 많아.

tree 출력은 파일 시스템 자체가 아니야

깊이 제한, 제외된 디렉터리, 읽을 수 없는 경로, 마운트 지점, 심볼릭 링크가 화면에 보이는 내용을 바꿔. 오류 메시지도 출력의 일부로 읽고, 지금 묻는 질문에 맞게 보기를 좁혀. 화면에 나오지 않았다는 사실만으로 실제 파일이 없다고 결론 내리면 안 돼.

디렉터리 구조도 민감한 정보야

파일 내용을 보여 주지 않아도 고객 이름, 내부 호스트, 비공개 프로젝트 이름이 경로에 드러날 수 있어. 다른 사람에게 공유하기 전에 출력 범위를 줄이고 이름을 검토해.

큰 저장소는 작은 범위부터 봐

전체 트리를 한꺼번에 펼치지 말고 깊이, 하위 경로, 명시적 제외 가운데 하나로 시작해. 작은 보기는 서로 비교하기 쉽고 질문과 관계없는 이름을 노출할 가능성도 줄여 줘. 범위를 바꿨다면 명령과 옵션도 함께 기록해야 다른 사람이 같은 보기를 재현할 수 있어.

Code

프로젝트 트리용 기본 옵션·bash
brew install tree   # macOS 예시
tree -L 2 -I 'node_modules|.git|__pycache__' .
# 트리와 크기를 함께 표시
tree -L 3 -h --du -I 'node_modules|.git'

External links

Exercise

brew install tree로 설치한 뒤 코드 디렉터리에서 tree -L 2 -I 'node_modules|.git' .을 실행하고 ls -R 출력과 비교해. 자주 쓰는 깊이와 제외 규칙이 정해졌다면 의미가 드러나는 별칭을 .zshrc에 추가하고 새 셸에서 시험해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.