Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리
리눅스의 파일 시스템은 /에서 시작하는 하나의 디렉터리 트리로 볼 수 있습니다. 파일의 위치는 경로로 나타내며, 현재 위치를 기준으로 쓰는 상대 경로와 /부터 쓰는 절대 경로를 구별하면 명령어가 어느 파일에 작용하는지 판단하기 쉬워집니다. 이 강좌에서는 경로를 읽는 법과 자주 만나는 디렉터리의 역할을 익힙니다.
하나의 트리로 이어지는 파일 시스템
Windows의 드라이브 문자와 달리, 리눅스에서는 최상위 디렉터리인 루트 디렉터리 / 아래에 파일과 디렉터리가 이어집니다. 별도의 디스크나 파일 시스템을 연결해도 보통 트리의 어느 디렉터리에 붙여 사용합니다. 이 연결을 마운트라고 합니다. 트리의 모양만 보고 파일이 실제로 어느 디스크에 저장되어 있는지는 알 수 없습니다.
/와 /root는 다릅니다. /는 전체 트리의 시작점이고, /root는 일반적으로 관리자(root) 계정의 홈 디렉터리입니다. 일반 사용자 홈 디렉터리는 흔히 /home/사용자명이지만, 계정 설정에 따라 다른 위치일 수 있습니다.
절대 경로와 상대 경로
절대 경로는 /로 시작합니다. 예를 들어 /etc/hosts는 현재 어디에 있든 같은 위치를 가리킵니다. 상대 경로는 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 위치가 /home/learner라면 notes/todo.txt는 /home/learner/notes/todo.txt를 뜻합니다.
| 표기 | 뜻 | 예 |
|---|---|---|
/ |
파일 시스템 트리의 시작점 | /etc/hosts |
. |
현재 디렉터리 | ./script.sh |
.. |
상위 디렉터리 | ../notes |
~ |
셸에서 현재 사용자의 홈 디렉터리로 확장 | ~/notes |
.과 ..은 상대 경로를 구성하는 디렉터리 항목입니다. ~는 파일 시스템에 실제로 있는 이름이 아니라 Bash 같은 셸이 명령을 실행하기 전에 확장하는 표기입니다. 특히 '~/notes'처럼 작은따옴표로 감싸면 ~가 홈 디렉터리로 확장되지 않습니다.
경로에는 /를 구분자로 사용하며 대소문자를 구별합니다. 따라서 Notes와 notes는 서로 다른 이름일 수 있습니다. 공백이 포함된 경로는 'project notes'처럼 따옴표로 묶거나 공백을 이스케이프해야 하나의 인수로 전달됩니다.
주요 디렉터리의 역할
아래 표는 흔히 볼 수 있는 위치의 일반적인 역할입니다. 배포판과 설치 방식에 따라 디렉터리가 없거나 다른 위치로 연결될 수 있으며, 모든 파일이 표의 설명에 딱 맞게 배치되는 것은 아닙니다.
| 경로 | 일반적인 역할 |
|---|---|
/home |
일반 사용자 홈 디렉터리가 놓이는 곳 |
/etc |
시스템과 서비스의 설정 파일 |
/usr |
사용자 공간의 프로그램과 공유 데이터 |
/var |
로그·캐시처럼 운영 중 내용이 변하는 데이터 |
/tmp |
임시 파일을 두는 곳 |
/dev |
장치를 나타내는 파일 |
/proc, /sys |
커널과 시스템 정보를 보여 주는 가상 파일 시스템 |
/boot |
부팅에 필요한 파일이 놓이는 곳 |
/mnt, /media |
추가 저장 장치 등을 연결할 때 사용하는 위치 |
/proc와 /sys의 항목을 일반 문서처럼 무작정 편집하거나 삭제해서는 안 됩니다. /tmp에 중요한 자료를 장기간 보관하는 것도 피하세요. 시스템 정책에 따라 임시 파일이 정리될 수 있습니다. 설정을 바꿀 목적이라도 /etc의 파일은 의미를 확인하고 백업한 뒤 수정해야 합니다.
경로를 읽는 연습
다음 경로를 왼쪽부터 읽어 보세요. /home/learner/projects/report.txt에서 /는 시작점, home과 learner와 projects는 차례로 거치는 디렉터리, report.txt는 마지막 항목입니다. 이름에 점이 들어 있다고 해서 파일 형식이나 존재 여부가 확정되는 것은 아닙니다.
현재 위치가 /home/learner/projects라고 가정하면 ../notes.txt는 상위 디렉터리인 /home/learner의 notes.txt를 가리킵니다. 이 경로가 실제로 존재하는지는 별도로 확인해야 합니다. 경로를 읽는 것과 파일의 존재를 확인하는 것은 다른 작업입니다.
명령을 실행하기 전에는 ‘현재 위치가 어디인가’, ‘입력한 경로가 절대 경로인가 상대 경로인가’를 먼저 확인하세요. 특히 파일을 옮기거나 지우는 명령에서는 상대 경로를 잘못 해석하면 의도하지 않은 대상에 작업할 수 있습니다. 터미널과 셸 시작하기 강좌에서 명령어의 기본 구조를 읽는 법을 살펴볼 수 있습니다.
공식 문서
디렉터리의 일반적인 배치 기준은 Filesystem Hierarchy Standard 3.0을 참고했습니다. 실제 구성은 사용하는 배포판과 시스템 설정을 함께 확인하세요.









