티스토리 뷰

공부/Linux

07. 파일 종류

김대욱대욱 2018. 3. 19. 13:22

목표 

1. 파일의 구조

2. 일반 파일

3. 디렉토리 파일

4. 링크 파일

5. 디바이스 파일



1. 파일의 구조

  - 리눅스 시스템에서 파일의 구조는 파일이름, Inode와 데이터 블럭으로 구분할 수 있다.

▷ 파일의 이름

  - 파일을 접근하기 위해 사용한다.

  - 접근하기 위해 사용되므로 당연히 파일의 이름은 유일한 것이어야 한다.

  - 현재 디렉토리 밑에 존재하는 디렉토리와 같은 이름의 일반파일은 생성할 수 없다.

  - 파일의 이름 생성시 규칙

- 최대 255자 까지 생성 가능

- 문자와 숫자 사용 가능, 대소문자 구별

- .(Dot), _(Underbar), -(Dash) 사용가능

- 특수문자 사용 안됨

- .(Dot)으로 시작하는 이름은 시스템의 환경파일들이므로 일반파일의 이름으로 권장하지 않는다.

- 공백이나 탭 사용은 권장하지 않는다.


 ▷ Inode

  - 파일에 대한 속성정보와 데이터 블록을 가리키고 있는 포인터를 포함하고 있다.

  - 숫자로 되어져 있으며 각 파일 시스템은 자신의 Inode 테이블을 가지고 있다.

  - 새로운 파일 시스템이 만들어 지면 새로운 Inode번호를 할당 받는다.

  - Inode의 정보

- 파일의 종류(File Type)

- 파일의 퍼미션모드(File Permission Mode)

- 파일의 소유자, 그룹(File Ownership, Groupship)

- 파일의 링크수(Hard Link Count)

- 파일의 마지막 접근 시간(Access Time), 수정시간(Modification Time)

- 파일의 크기(Bytes, 할당된 또는 사용중인 데이터블럭의 수)

- 두가지 형태의 포인터(Directe Pointers and Indirect Pointers)


 ▷ 데이터 블럭(Data Block)

  - 디스크 공간에 대한 단위로서 데이터를 저장하는 역할을 가진다.

  - 일반 파일, 디렉토리, 심볼릭 파일들은 데이터 블록을 사용한다.

  - 디바이스 파일은 데이터 블럭에 데이터를 저장하지 않고 주 디바이스숫자 와 부 디바이스 숫자를 담고있다.

  - 데이터 블럭의 내용

- 일반파일의 경우 파일의 내용이 들어 있다.

- 디렉토리인 경우 안에 포함된 파일과 디렉토리 이름이 들어 있다. 


2. 일반 파일

  - 리눅스에서 찾을 수 있는 거의 대부분의 파일 종류이다.


3. 디렉토리 파일

  - 윈도우에서 폴더와 같은 역할이라고 생각하면 될 것 같다.


4. 링크 파일

  - 명령어 옵션

-b, --backup : 대상 파일이 있다면 백업파일을 생성한다.

-f, --force : 링크를 생성할 대상 파일이 있더라도 강제적으로 새로운 링크를 생성한다.

-i, --interactive : 링크를 생성할 대상 파일이 있을 경우, 삭제 유무를 사용자에게 물어 본다.

-n, --no-dereference : 링크할 원본이 심볼릭 파일이면, 그 심볼릭 파일의 대상 파일을 추적하여 링크한다.

-s, --symbolic : 링크할 원본이 심볼릭 파일이면, 심볼릭 파일을 링크한다.

-S, --suffix backup-suffix : 링크를 생성할 대상 파일이 이미 있을 경우, 이전의 대상파일을 백업할 파일의 확장자를 지정한다.

-V, --version-control : 백업하는 방법을 지정한다. t, numbered-항상 번호로 된 백업파일을 만든다.

                                                       nil, existing-대상 파일이 있을 경우에만 백업파일을 만든다.

                                 never, simple-간단한 백업을 만든다.

  - 하드링크와 심볼릭 링크의 구조


 ▷ 하드링크 파일

  - 하드링크는 기본적으로 사용되는 것이다.

  - 하드링크는 파일명이 하나 더 만들어져 동일한 Inode 번호를 가르키게 된다. 

  - 같은 Inode 번호를 저장하고 있으므로 원본 파일을 지워도 원본파일의 파일명만 지워질 뿐 Inode가 지워지는 것이 아니기 때문에 링크 파일에 영향을 미치지 않는다.

  - 원본 파일과 링크 파일의 권한은 항상 같다. Inode에 권한이 저장되어 있기 때문.

  - 명령어 형식

# ln file1 file2


 ▷ 심볼릭링크, 소프트 링크

  - 일반적으로 링크라고 하면 심볼릭 링크를 말한다.

  - 심볼릭링크는 일반적으로 상대경로를 사용하지 않는다.

  - # ls -l 명령어를 입력했을때 제일앞에 "l"이 있으면 심볼릭링크

  - 여러 디렉토리에서 동일한 라이브러리를 요구할 경우, 하나의 파일을 여러 사람이 공통으로 사용할 경우 많이 쓴다.

  - 모든 유저에게 모든 권한 (rwxrwxrwx=777)을 준다.

  - 포인트 하는 정보가 들어 있을 뿐 원본파일은 아니다.

  - cat으로 보여지는 정보가 많던 적던 동인한 size를 갖는다. 

  - 원본파일이 지워지게 되면 링크 파일에 영향을 미친다.

  - 윈도우에서 바로가기 실행파일 같은거라고 생각하자. (파일이 용량이 크던 작던 바로가기 실행파일은 동일한 size!, 원본파일 지워지면 실행안되는 것)

  - 명령어 형식

# ln -s file1 file2

 


  ※ 하드링크 & 심볼릭링크 차이점

- 두개의 파일의 Inode 번호가 동일한 것 - 하드링크

- # ls -li 했을때 하드링크는 링크 수 증가, 심볼릭링크는 파일명이 file3 -> file2 이런식

- 두개의 파일 사이즈가 동일한 것 - 하드링크

- 파일시스템을 넘어서 링크를 걸 수 있는것은 심볼릭링크, 불가능한것은 하드링크


5. 디바이스 파일

 ▷ 블럭 디바이스 파일

  - 블럭 단위로 I/O 발생

  - 디스크 디바이스 이면 I/O단위는 4K

 ▷ 캐릭터 디바이스 파일 

  - 바이트 단위로 I/O 발생

  - 디스크 디바이스 이면 I/O 단위는 512Bytes

 ▷ Major Device 번호

  - 장치의 종류

  - 장치의 종류가 틀리면 Major Device 번호가 틀리다.

 ▷ Minor Device 번호

  - 개별적인 장치의 종류 또는 동작 방법의 차이

  - 개별적인 장치의 종류가 틀리면 Minor Device 번호가 틀리다.

  - 또는 같은 장치라도 동작 방법이 틀리면 Minor Device 번호가 틀리다.



'공부 > Linux' 카테고리의 다른 글

09. VI 편집기  (0) 2018.03.19
08. 파일 속성 관리  (0) 2018.03.19
06. 디렉토리 & 파일관리 (2/2)  (0) 2018.03.19
06. 디렉토리 & 파일관리 (1/2)  (0) 2018.03.19
05. 리눅스 기본 정보 확인  (0) 2018.03.19
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30