개요
디렉토리는 컴퓨팅에서 파일과 다른 디렉토리들의 그룹을 갖고 있는 파일 시스템 안의 존재물이다. 컴퓨터의 파일 시스템은 파일 캐비넷으로 표현될 수 있다. 여기서 높은 수준의 디렉토리들을 서랍이라고 부르고 낮은 수준의 하위 디렉토리들을 서랍 안에 있는 파일 폴더라고 부를 수 있다. 사실 디렉토리도 하나의 파일로써 존재한다. 각각의 데이터는 이름과 아이노드로 이루어진 Dictionary로 구성되어 있다.
역사적으로 현대의 몇몇 임베디드 장치들에서도 파일 시스템들은 디렉토리를 전혀 지원하지 못하거나, 하위 디렉토리를 허용하지 않는 평평한 디렉토리 구조만을 가지고 있다. 파일들을 포함하는 각각의 최상위 수준의 디렉토리들의 그룹만 있을 뿐이다. 유명한 일반 계급의 파일 시스템은 유닉스에서 비롯되었다. 이러한 종류의 파일 시스템은 데니스 리치의 초기 연구의 관심이었다.
현대에, 유닉스와 같은 시스템, 특히 리눅스에서는 디렉토리 구조가 파일 시스템 계급 표준으로 정의된다. 많은 운영 체제에서 프로그램들은 연결된 현재의 작업 디렉토리를 가지고 있는데 그 속에서 프로그램들이 실행된다. 일반적으로 프로그램이 접근하는 파일 이름들은 파일 이름들이 명확한 디렉토리 이름으로 지정되지 않는다면 이 디렉토리 안에 존재할 것으로 가정한다.
몇몇의 운영 체제들은 그들의 홈 디렉토리나 프로젝트 디렉토리에 사용자들이 접근하지 못하도록 막는다. 유닉스에서 디렉토리들은 파일 형식으로 간주한다.
디렉토리또한 하나의 파일로 간주한다. 따라서 디렉토리도 아이노드가 존재한다. 그러나 디렉토리는 데이터 블럭에 있는 데이터가 incode number와 name을 가지고 있는 체계화된 구조로 저장되게 된다. 따라서 kernel은 이러한 데이터를 읽어서 파일이 어떤 구조로 저장되어 있는지 알 수 있게 된다. 이떄 .은 스스로의 inode를 ..은 부모의 inode를 저장하여 참조할 수 있도록 한다.
UNIX 디렉터리 구조
위치 | 이름 | 설명 |
---|---|---|
/ | 루트 |
|
/bin | 바이너리 |
|
/boot | 부트 |
|
/dev | 디브(디바이스) |
|
/tmp | 템프 |
|
/etc |
| |
/home | 홈 |
|
/lib | 립(라이브러리) |
|
/media | 미디어 |
|
/mnt | 마운트 |
|
/opt | 옵트 |
|
/proc | 프록(프로세스) |
|
/root | 루트 |
|
/sbin | 시스템 바이너리 |
|
/usr | 유저 |
|
/var | 바 |
|