iBetter Books
수정

디렉토리 구조와 경로

Windows에서 파일을 찾을 때 C:\Users\홍길동\Documents처럼 드라이브 문자부터 시작했다면, 리눅스는 조금 다릅니다. 리눅스에는 드라이브 문자가 없습니다. 모든 것이 /(루트)라는 단 하나의 시작점에서 뻗어나가는 나무 구조로 이루어져 있습니다.

리눅스 디렉토리 트리

터미널에서 tree / 명령을 실행하면 거대한 디렉토리 트리가 펼쳐집니다. 처음 보면 복잡하게 느껴지지만, 핵심 디렉토리 몇 개만 알아두면 충분합니다.

/
├── bin       → 기본 실행 파일 (ls, cp, mv 등)
├── boot      → 부트로더와 커널
├── dev       → 장치 파일 (하드디스크, USB 등)
├── etc       → 시스템 전체 설정 파일
├── home      → 사용자 홈 디렉토리
│   └── ubuntu/
├── lib       → 공유 라이브러리
├── proc      → 실행 중인 프로세스 정보 (가상 파일시스템)
├── root      → root 사용자의 홈 디렉토리
├── tmp       → 임시 파일 (재부팅하면 삭제)
├── usr       → 사용자 프로그램과 데이터
│   ├── bin/  → 추가 실행 파일
│   └── lib/  → 추가 라이브러리
└── var       → 자주 변하는 데이터 (로그, 캐시)
    └── log/  → 시스템 로그

각 디렉토리의 역할을 정리하면 다음과 같습니다.

디렉토리 역할 예시
/etc 설정 파일 모음 /etc/hosts, /etc/passwd
/home 사용자 개인 공간 /home/ubuntu
/var/log 로그 파일 저장 /var/log/syslog
/usr/bin 설치된 프로그램 /usr/bin/python3
/tmp 임시 작업 공간 스크립트 임시 파일 저장

Bash 스크립트를 작성할 때 가장 자주 접하는 곳은 /etc(설정 읽기), /var/log(로그 분석), /tmp(임시 파일)입니다. 이 세 곳만 기억해도 실전에서 크게 도움이 됩니다.

절대 경로 vs 상대 경로

경로를 표현하는 방법은 두 가지입니다. 어디서 출발하느냐의 차이입니다.

절대 경로는 루트(/)에서 시작합니다. 현재 위치가 어디든 항상 같은 파일을 가리킵니다.

/home/ubuntu/scripts/backup.sh/etc/nginx/nginx.conf/var/log/syslog

상대 경로는 현재 위치를 기준으로 합니다. pwd 명령으로 현재 위치를 확인할 수 있습니다.

# 현재 위치: /home/ubuntuscripts/backup.sh      # /home/ubuntu/scripts/backup.sh와 동일../guest/memo.txt      # /home/guest/memo.txt와 동일

Bash 스크립트에서는 절대 경로를 쓰는 것이 안전합니다. 스크립트가 어디서 실행되든 의도한 파일을 정확히 가리킬 수 있기 때문입니다.

특수 경로 기호

리눅스에는 자주 사용하는 위치를 간단하게 표현하는 특수 기호들이 있습니다.

기호 의미 예시
. 현재 디렉토리 ./script.sh (현재 디렉토리의 script.sh 실행)
.. 부모 디렉토리 cd .. (한 단계 위로 이동)
~ 현재 사용자의 홈 디렉토리 cd ~ (홈으로 이동)
- 바로 이전 디렉토리 cd - (직전 위치로 복귀)

-는 특히 편리합니다. 두 디렉토리 사이를 왔다 갔다 할 때 아주 유용합니다.

cd /etc/nginx         # /etc/nginx로 이동cd /var/log           # /var/log로 이동cd -                  # 다시 /etc/nginx로 복귀
# 출력 결과
/etc/nginx

실제로 확인해봅시다.

# 현재 위치 확인pwd
/home/ubuntu
# 홈 디렉토리로 이동한 뒤 절대 경로와 상대 경로 비교cd /home/ubuntuls ./           # 현재 디렉토리 내용ls ../          # 부모 디렉토리(/home) 내용ls ~/scripts    # 홈 디렉토리의 scripts 폴더

경로 개념은 단순해 보여도 Bash 스크립트 작성의 기초입니다. 다음 절에서는 이 경로를 활용해 파일을 탐색하는 명령어들을 살펴봅니다.