DaleSchool

디렉토리 탐색

입문20분

학습 목표

  • 파일 시스템의 트리 구조를 설명할 수 있다
  • 절대 경로와 상대 경로의 차이를 설명할 수 있다
  • cd 명령어로 원하는 디렉토리로 이동할 수 있다
  • ls 옵션으로 파일 목록을 다양하게 확인할 수 있다

동작하는 코드

예제 1: 현재 위치 확인과 이동

pwd

출력 예시:

/Users/dale

pwd는 Print Working Directory의 약자입니다. 지금 내가 파일 시스템의 어디에 있는지 알려줍니다.

이제 하위 디렉토리로 이동해봅니다:

cd Documents
pwd

출력:

/Users/dale/Documents

한 단계 위로 올라가기:

cd ..
pwd

출력:

/Users/dale

예제 2: 홈 디렉토리로 빠르게 이동

어디에 있든 홈으로 바로 돌아오는 방법:

cd /tmp
pwd
cd ~
pwd

출력:

/tmp
/Users/dale

~는 항상 내 홈 디렉토리를 뜻합니다. (/Users/dale 같은 긴 경로를 외울 필요 없습니다.)

예제 3: ls 옵션으로 파일 목록 상세 보기

ls

출력:

Desktop  Documents  Downloads  Movies  Music  Pictures

상세 정보와 함께 보기:

ls -l

출력:

drwx------  5 dale staff   160 Jan 15 10:30 Desktop
drwx------ 10 dale staff   320 Jan 14 09:00 Documents
drwx------  3 dale staff    96 Jan 13 15:20 Downloads

숨긴 파일까지 보기:

ls -la

출력 (.으로 시작하는 파일이 숨긴 파일):

drwxr-xr-x  20 dale staff   640 Jan 15 10:30 .
drwxr-xr-x   8 root admin   256 Jan  1 00:00 ..
-rw-r--r--   1 dale staff  3771 Jan  1 00:00 .zshrc
drwx------   5 dale staff   160 Jan 15 10:30 Desktop
drwx------ 10 dale staff   320 Jan 14 09:00 Documents

직접 수정하기

다양한 이동 방법을 연습해보세요:

# 홈으로 바로 이동 (어디서든)
cd ~

# 이전 디렉토리로 돌아가기 (매우 유용!)
cd Documents
cd -
# → 직전에 있던 위치로 돌아감

# 절대 경로로 이동 (어디서든 같은 결과)
cd /tmp

# 여러 단계 한번에
cd ~/Documents

# 여러 단계 위로
cd ../..

ls 옵션을 다양하게 써보세요:

# 기본 목록
ls

# 숨긴 파일 포함
ls -a

# 상세 정보 (권한, 크기, 날짜)
ls -l

# 두 옵션 합치기 (가장 많이 씀)
ls -la

# 파일 크기를 읽기 쉽게 (K, M, G 단위)
ls -lh

# 특정 디렉토리 내용 보기
ls -la Documents/

"왜?" — 파일 시스템 트리 구조 이해하기

파일 시스템은 나무(tree) 구조입니다. 최상위는 /(루트)이고, 그 아래로 모든 디렉토리와 파일이 뻗어 있습니다.

/                          ← 루트 (최상위)
├── Users/
│   ├── dale/              ← ~ (내 홈 디렉토리)
│   │   ├── Desktop/
│   │   ├── Documents/
│   │   │   ├── report.pdf
│   │   │   └── notes.txt
│   │   └── Downloads/
│   └── guest/
├── tmp/                   ← 임시 파일
├── usr/
│   └── bin/               ← 시스템 명령어들이 여기에
└── etc/                   ← 시스템 설정 파일

이 구조를 이해하면 어디서든 원하는 위치로 이동할 수 있습니다.

절대 경로 vs 상대 경로

| 종류 | 예시 | 설명 | | --------- | ------------------------------ | --------------------------- | | 절대 경로 | /Users/dale/Documents | /에서 시작, 어디서든 동일 | | 상대 경로 | Documents 또는 ./Documents | 현재 위치 기준 |

언제 어떤 경로를 쓸까?

  • 절대 경로: 스크립트에서, 다른 사람이 봐도 명확해야 할 때
  • 상대 경로: 직접 사용할 때, 근처 파일 접근할 때

특수 경로 기호

| 기호 | 의미 | 예시 | | ---- | -------------- | ------------------------ | | ~ | 내 홈 디렉토리 | cd ~, ls ~/Documents | | . | 현재 디렉토리 | ls ., ./script.sh | | .. | 상위 디렉토리 | cd .., ls ../sibling | | - | 이전 디렉토리 | cd - |

흔한 실수

실수 1: 경로 구분자 혼동

# 맞음 (Mac/Linux)
cd Documents/notes

# 틀림 (Windows 스타일)
cd Documents\notes

Mac과 Linux는 /(슬래시), Windows는 \(백슬래시)를 씁니다.

실수 2: 존재하지 않는 디렉토리로 이동

cd documants   # 오타!
cd: no such file or directory: documants

cd 입력 후 Tab을 누르면 자동완성이 됩니다. 오타를 방지하는 가장 좋은 방법입니다.

실수 3: 공백이 있는 디렉토리 이름

# 에러: "My" "Documents"를 각각 처리하려고 함
cd My Documents

# 올바름: 따옴표로 감싸거나 백슬래시로 이스케이프
cd "My Documents"
cd My\ Documents

심화 학습

ls -la 출력 읽는 법
drwxr-xr-x  3 dale staff   96 Jan 15 10:30 Documents
-rw-r--r--  1 dale staff 1200 Jan 14 09:00 README.md
  • 첫 번째 문자: d=디렉토리, -=파일, l=심볼릭 링크
  • rwxr-xr-x: 소유자/그룹/기타 권한 (r=읽기, w=쓰기, x=실행)
  • 숫자 3, 1: 하드 링크 수
  • dale: 소유자
  • staff: 그룹
  • 96, 1200: 파일 크기(바이트)
  • Jan 15 10:30: 마지막 수정 시간
  • Documents, README.md: 이름

권한 시스템은 레슨 11에서 자세히 다룹니다.

Tab 자동완성 필수 사용법

경로를 입력할 때 Tab 키를 누르면 자동완성됩니다:

cd Doc[Tab]  →  cd Documents/

일치하는 항목이 여러 개면 Tab을 두 번 눌러 목록을 확인하세요:

cd D[Tab][Tab]
# Desktop/  Documents/  Downloads/

처음부터 전체 경로를 타이핑하지 마세요. Tab을 적극 활용하면 실수도 줄고 속도도 빨라집니다.

tree 명령어로 전체 구조 시각화

tree 명령어를 설치하면 디렉토리 구조를 트리 형태로 볼 수 있습니다:

# macOS
brew install tree

# 사용
tree Documents/

출력:

Documents/
├── project/
│   ├── README.md
│   └── src/
│       └── main.py
└── notes.txt

깊이를 제한하고 싶으면:

tree -L 2  # 2단계까지만
  1. cd ~로 홈으로 이동한 후 pwd로 위치를 확인하세요.
  2. ls -la로 숨긴 파일 포함 상세 목록을 확인하세요. .으로 시작하는 파일이 몇 개인지 세어보세요.
  3. cd Documents로 이동 후, cd ..으로 돌아오세요.
  4. cd Documents로 다시 이동 후, cd -로 이전 위치로 돌아가보세요. cd ..와 결과가 다른지 확인하세요.
  5. ls -lh ~로 홈 디렉토리의 파일 크기를 읽기 좋은 형태로 확인하세요.

Q1. 현재 위치가 /Users/dale/Documents/project일 때, 홈 디렉토리로 가는 가장 짧은 명령어는?

  • A) cd /Users/dale
  • B) cd ~
  • C) cd ../..
  • D) cd /