동작하는 코드
예제 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단계까지만
cd ~로 홈으로 이동한 후pwd로 위치를 확인하세요.ls -la로 숨긴 파일 포함 상세 목록을 확인하세요..으로 시작하는 파일이 몇 개인지 세어보세요.cd Documents로 이동 후,cd ..으로 돌아오세요.cd Documents로 다시 이동 후,cd -로 이전 위치로 돌아가보세요.cd ..와 결과가 다른지 확인하세요.ls -lh ~로 홈 디렉토리의 파일 크기를 읽기 좋은 형태로 확인하세요.
Q1. 현재 위치가 /Users/dale/Documents/project일 때, 홈 디렉토리로 가는 가장 짧은 명령어는?
- A)
cd /Users/dale - B)
cd ~ - C)
cd ../.. - D)
cd /