11-2.[os] 디렉터리의 구조
디렉터리의 개념
- 관련 있는 파일을 하나로 모아놓은 곳
- 자식 디렉터리(sub directory) 나 파일을 가진다
- 루트 디렉터리 (root directory): 최상위 디렉터리, 슬래시(/)
디렉터리 파일
디렉터리도 파일이라 헤더를 가짐
일반파일: 데이터가 담김
디렉터리: 파일 정보가 담김
디렉터리에는 마침표(.) 파일과 2개 마침표(..) 파일이 있음
- 마침표 파일: 자기 자신의 디렉터리를 가리킴
- 2개 마침표 파일: 상위 디렉터리를 가리킴
경로
- 파일이 전체 디렉터리 중 어디에 있는지 나타내는 정보
- 서로 다른 디렉터리에는 같은 이름의 파일이 존재할 수 있음
절대 경로:
- absolute path
- 루트 디렉터리를 기준으로 파일의 위치를 나타내는 방식
- 루트 디렉터리에서 시작하는 절대적인 위치
- 예) /program/data/exm.c
상대 경로:
- relative path
- 현재 있는 위치를 기준으로 파일의 위치를 표시
- 예) data/exam.c
- 예) ../user/exm.c
- 상대경로는 절대경로랑 달리 문자로 시작
자신이 위치한 디렉터리가 기준
cd (change directory): 디렉터리 이동
현재 위치보다 아래에 있는 데이터에 접근할 때는 상대 경로를 사용하고 다른 디렉터리로 이동할 때는 절대 경로를 사용
디렉터리 구조
- 1단계 디렉터리 구조
- 루트 밑에 디렉토리 1계층, 디렉터리 안엔 파일만
- 다단계 이렉터리 구조
- 루트 밑에 여러 단계의 디렉터리가 트리형식으로 있음
- 단계 확장에 제한 X
트리: 순환이 없는 그래프
그래프 디렉터리 구조
오늘 날의 디렉터리 구조에는 순환이 있다
- 기본적으론 트리 + 디렉터리와 디렉터리를 연결하는 링크
- 바로가기: 다른 디렉터리로 바로 갈 수 있는 지름길
마운트
- 파티션: 논리적인 디스크 분할
- 예) 윈도우 - C 드라이브, D 드라이브, E 드라이브
- 파티션이 사용자한테 노출되면 쓰기 불편
- 하드나 파티션이 많으면 알파벳이 끝이 없음
- 파티션마다 파일 테이블이 따로 존재
- 초기 윈도우 디스크 용량이 작음 -> 파일 시스템 크기 제한 있음 -> 파티션을 나눠씀
- 유닉스
- 파일 테이블 크기 제한 없음
- 하나의 파일 테이블로 여러 개의 디스크나 파티션 통합해서 관리 가능
마운트
- 여러 개의 파티션을 통합하는 명령어
- 예) 2개의 파티션을 하나의 파일 시스템으로 만듦
- 파티션2의 루트 디렉터리를 파티션 1의 /mnt 디렉터리에 붙임
- a.mp4의 경로: /mnt/pref/a.mp4
/mnt : 마운트 연결 지점(mounting point)
디렉터리 이동할 때마다 다른 파티션으로 넘어가지만 사용자는 알지 못함
- 사용자한테는 한 파티션으로 보이기 때문에 몇개의 파티션이 합쳐져있는지 모름
- 파티션이 몇개라도 하나로 통합 가능
- CD-ROM이나 USB 메모리 같은 외부 저장장치도 마운트로 파티션에 붙이고 마운트 해제(un-mount)로 분리
- 보통 유닉스 - /dev 아래에 외부 저장장치를 마운트해서 씀