11-2.[os] 디렉터리의 구조

디렉터리의 개념

  • 관련 있는 파일을 하나로 모아놓은 곳
  • 자식 디렉터리(sub directory) 나 파일을 가진다

image.png

  • 루트 디렉터리 (root directory): 최상위 디렉터리, 슬래시(/)

image.png

디렉터리 파일

  • 디렉터리도 파일이라 헤더를 가짐

  • 일반파일: 데이터가 담김

  • 디렉터리: 파일 정보가 담김

  • 디렉터리에는 마침표(.) 파일과 2개 마침표(..) 파일이 있음

  • 마침표 파일: 자기 자신의 디렉터리를 가리킴
  • 2개 마침표 파일: 상위 디렉터리를 가리킴

image.png

경로

  • 파일이 전체 디렉터리 중 어디에 있는지 나타내는 정보
  • 서로 다른 디렉터리에는 같은 이름의 파일이 존재할 수 있음

절대 경로:

  • absolute path
  • 루트 디렉터리를 기준으로 파일의 위치를 나타내는 방식
  • 루트 디렉터리에서 시작하는 절대적인 위치
  • 예) /program/data/exm.c

image.png

상대 경로:

  • relative path
  • 현재 있는 위치를 기준으로 파일의 위치를 표시
  • 예) data/exam.c
  • 예) ../user/exm.c
  • 상대경로는 절대경로랑 달리 문자로 시작
  • 자신이 위치한 디렉터리가 기준

  • cd (change directory): 디렉터리 이동

  • 현재 위치보다 아래에 있는 데이터에 접근할 때는 상대 경로를 사용하고 다른 디렉터리로 이동할 때는 절대 경로를 사용


디렉터리 구조

  • 1단계 디렉터리 구조
  • 루트 밑에 디렉토리 1계층, 디렉터리 안엔 파일만

image.png

  • 다단계 이렉터리 구조
  • 루트 밑에 여러 단계의 디렉터리가 트리형식으로 있음
  • 단계 확장에 제한 X

image.png

  • 트리: 순환이 없는 그래프

  • 그래프 디렉터리 구조

  • 오늘 날의 디렉터리 구조에는 순환이 있다

  • 기본적으론 트리 + 디렉터리와 디렉터리를 연결하는 링크
  • 바로가기: 다른 디렉터리로 바로 갈 수 있는 지름길

image.png


마운트

  • 파티션: 논리적인 디스크 분할
  • 예) 윈도우 - C 드라이브, D 드라이브, E 드라이브
  • 파티션이 사용자한테 노출되면 쓰기 불편
  • 하드나 파티션이 많으면 알파벳이 끝이 없음
  • 파티션마다 파일 테이블이 따로 존재
  • 초기 윈도우 디스크 용량이 작음 -> 파일 시스템 크기 제한 있음 -> 파티션을 나눠씀

image.png

  • 유닉스
  • 파일 테이블 크기 제한 없음
  • 하나의 파일 테이블로 여러 개의 디스크나 파티션 통합해서 관리 가능

image.png

마운트

  • 여러 개의 파티션을 통합하는 명령어
  • 예) 2개의 파티션을 하나의 파일 시스템으로 만듦
  • 파티션2의 루트 디렉터리를 파티션 1의 /mnt 디렉터리에 붙임
  • a.mp4의 경로: /mnt/pref/a.mp4
  • /mnt : 마운트 연결 지점(mounting point)

  • 디렉터리 이동할 때마다 다른 파티션으로 넘어가지만 사용자는 알지 못함

  • 사용자한테는 한 파티션으로 보이기 때문에 몇개의 파티션이 합쳐져있는지 모름

image.png

  • 파티션이 몇개라도 하나로 통합 가능
  • CD-ROM이나 USB 메모리 같은 외부 저장장치도 마운트로 파티션에 붙이고 마운트 해제(un-mount)로 분리
  • 보통 유닉스 - /dev 아래에 외부 저장장치를 마운트해서 씀

Did you find this article valuable?

Support Fullstack Developer at Your Service by becoming a sponsor. Any amount is appreciated!