서버/작업중 2016. 1. 22. 14:49

17. 파일 타입

 

 

[root@CentOS ~]# echo $PS1
[\u@\h \W]\$


[root@CentOS ~]# PS1="[\u@\h \$PWD]# "
[root@CentOS /root]# cd ..
[root@CentOS /]#

 

 

 

filename

 inode

 Data Block

 

리눅스에서 파일은 위의 그림과 같이 Filename, inode, Data Block으로 구성된다.

 

 - 파일 이름은 중복되면 안되며, 대소문자도 구분한다.

 - inode : 파일 속성 정보, Data Block 포인트 정보가 포함되어 있으며, 'ls -l' 명령어를 이용하여 확인할 수 있다.

 - Data Block : 실제 파일에 저장되는 정보가 포함되어 있으며, 일반파일, 디렉토리, 심볼릭링크 정보들이 저장된다.

                      (단, 디바이스 파일은 저장하지 않음)

 

파일 유형은 다음과 같다.

 

 - 일반 파일

 - 디렉토리 파일

 - 링크 파일

 - 디바이스 파일

 - 소켓 파일

 - 도어 파일

 - 파이프 파일

 

 

1. 일반 파일

 

[root@CentOS /]# cd
[root@CentOS /root]#
[root@CentOS /root]# ls -l
합계 100
-rw-------. 1 root root  1594 2015-12-18 22:14 anaconda-ks.cfg
-rw-r--r--. 1 root root 46035 2015-12-18 22:14 install.log
-rw-r--r--. 1 root root 10033 2015-12-18 22:12 install.log.syslog
drwxr-xr-x. 2 root root  4096 2015-12-18 22:24 공개

 

 -

 일반 파일 (명령어 : cat, cp, rm, more, head, tail... grep, find)

 d

 디렉토리 파일 (명령어 : ls, pwd, mkdir, cd, mv... grep, find)

 b

 블록 다바이스 파일 (ex : /dev/sha, /dev/hda, /dev/fd0)

 c

 문자 디바이스 파일 (입출력 장치)

 l

 심볼릭 링크 파일

 

 

1) 파일 이름

 

파일 이름은 파일을 접근하기 위해서 사용한다. 파일은 'inode'와 함께 파일 구성 요소로서 같은 디렉토리 안에서는 중복되면 안된다. 또한, 현재 디렉토리에서 디렉토리 이름과 동일한 파일은 생성할 수 없다.


[root@CentOS /root]# cd ..
[root@CentOS /]# mkdir test
[root@CentOS /]# cd test
[root@CentOS /test]#


[root@CentOS /test]# mkdir dir1
[root@CentOS /test]# touch dir1
[root@CentOS /test]#
[root@CentOS /test]# ls
dir1

 

파일 이름 생성 규칙은 다음과 같다.

 

 - 최대 255자까지 생성 가능

 - 문자, 숫자 사용 가능, 단 대소문자 구분

 - ".", "_", "-" 사용 가능, 단, 특수문자 ( * / \ , ' " & | < . )는 권장 않함

 - 이름 공백 권장 않함

 

 

2) inode

 

inode는 다음과 같이 2가지 파일 정보를 포함하고 있는 부분이다.

 

 파일 속성 정보

  ownership, groupship, file permission mode...

 데이터 블락 포인트 정보

  direct/indirect pointer

 

inode는 번호로 표기되며, 각 파일 시스템은 inode 테이블을 운영한다. 만약, 파일이 새로운 파일 시스템에서 생성되는 경우, 새로운 inode 번호를 할당받게 된다.


[root@CentOS /test]# ls -i
131378 dir1


[root@CentOS /test]# touch dir1/file1 dir1/file2
[root@CentOS /test]# ls -i dir1
131379 file1  131380 file2


[root@CentOS /test]# ls -liR
.:
합계 4
131378 drwxr-xr-x. 2 root root 4096 2015-12-23 16:25 dir1

./dir1:
합계 0
131379 -rw-r--r--. 1 root root 0 2015-12-23 16:25 file1
131380 -rw-r--r--. 1 root root 0 2015-12-23 16:25 file2

 

 -

  파일 유형 ( - : 일반 파일, d : 디렉토리 파일)

 rw-r--r--.

  퍼미션 모드

 1

  하드 링크 수

 root

  소유자

 root

  그룹

 0

  파일 크기(Byte)

 2015-12-23 16:25

  생성 및 수정 시간

 file1

  파일 이름

 


3) Data Block

 

Data Block은 데이터를 저장하는 디스크 공간 단위이다. 이때, 일반파일, 디렉토리, 심볼릭 링크 파일들이 Data Block을 사용한다. 단, 디바이스 파일은 Data Block에 데이터를 저장하지 않고, 주-디바이스 번호와 부-디바이스 번호만 포함하고 있다.

 

 일반파일

  파일 내용 포함

 디렉토리

  디렉토리 안에 포함된 파일과 디렉토리 이름이 포함

 

[root@CentOS /test]# ls -liR
.:
합계 4
131378 drwxr-xr-x. 2 root root 4096 2015-12-23 16:25 dir1

./dir1:
합계 0
131379 -rw-r--r--. 1 root root 0 2015-12-23 16:25 file1
131380 -rw-r--r--. 1 root root 0 2015-12-23 16:25 file2

 

 - Data Block에 포함된 데이터는 ASCII Text, Image, Database, Application Data와 같이 다양하다.

 - 리눅스에서 사용하는 대부분의 파일 종류는 일반파일이며, 'touch' 명령어, vi 편집기를 통하여 생성할 수 있다. 

 

 

2. 디렉토리 파일

 

디렉토리 파일은 Data Block 안에 실제 디렉토리가 포함하고 있는 파일과 디렉토리에 대한 정보를 갖고 있다. 포함된 정보는 다음과 같다.

 

 - inode 번호

 - 디렉토리 이름

 - 파일 이름

 

[root@CentOS /test]# ls -iaR
.:
131376 .       2 ..  131378 dir1

./dir1:
131378 .  131376 ..  131379 file1  131380 file2

 

 

3. 링크 파일

 

링크 파일은 하드 링크 파일과 심볼릭 링크 파일(소프트 링크 파일)로 구성되어 있다.

 

1) 하드 링크

 

하드 링크는 원본 파일의 경로를 저장하고 있는 파일이다. 만약, 원본 파일 내용이 수정되면, 원본과 동일하게 내용이 수정되며 항상 동일한 정보를 유지하게 된다. 또한, 원본이 삭제되어도 원본과 동일한 정보를 유지하고 있기때문에 원본에 대한 백업으로도 사용할 수 있다. 

 

[root@CentOS /test]# rm -rf /test/*
[root@CentOS /test]# ls

[root@CentOS /test]# echo ABC > file1
[root@CentOS /test]# ls -l file1
-rw-r--r--. 1 root root 4 2015-12-23 17:35 file1

[root@CentOS test]# cat file1
ABC

[root@CentOS /test]# ln file1 file2
[root@CentOS /test]# ls -li
합계 8
131378 -rw-r--r--. 2 root root 4 2015-12-23 17:35 file1
131378 -rw-r--r--. 2 root root 4 2015-12-23 17:35 file2

 

 - 'file1'과 'file2' inode 번호가 동일하다. 그렇기 때문에 파일 이름만 다를뿐, 파일 유형, 퍼미션 모드, 하드 링크 수, 소유자, 그룹, 파일 크기, 생성 및 수정 시간은 동일하다

 


[root@CentOS /test]# cat file2
ABC

[root@CentOS /test]# echo DEF >> file2
[root@CentOS /test]# cat file2
ABC
DEF

 

 - inode 번호가 동일하기 때문에 원본 파일과 링크 파일에 대한 권한은 동일하다. 그렇기 때문에 'file2'에 새로운 정보(DEF)를 추가하면, 'file1'에도  새로운 정보(DEF)가 적용된다.


[root@CentOS /test]# cat file1
ABC
DEF

[root@CentOS /test]# rm file1
rm: remove 일반 파일 `file1'? y

[root@CentOS /test]# cat file2
ABC
DEF


[root@CentOS /test]# ls -l
합계 4
-rw-r--r--. 1 root root 8 2015-12-23 17:36 file2

 

- 하드 링크는 동일한 inode 번호를 사용하기 때문에 원본 파일이 삭제되어도 원본파일 파일명만 삭제될뿐 inode 번호는 유효하기 때문에 링크로 inode 값을 지정하는 링크 파일에는 영향을 주지 않게된다.

 

2) 심볼릭 링크(소프트 링크)

 

심볼릭 링크는 원본 파일을 공유해서 사용하는 방식이다. 주로 다수의 디렉토리에서 동일한 라이브러리를 요구하거나, 하나의 파일을 다수 사용자들이 공용으로 사용할 경우 사용한다.


[root@CentOS /test]# ln -s file2 file3
[root@CentOS /test]# ls -li
합계 4
131378 -rw-r--r--. 1 root root 8 2015-12-23 17:36 file2
131379 lrwxrwxrwx. 1 root root 5 2015-12-23 18:31 file3 -> file2


[root@CentOS /test]# echo XYZ >> file3
[root@CentOS /test]# cat file3
ABC
DEF
XYZ

[root@CentOS /test]# cat file2
ABC
DEF
XYZ

 - 링크 파일 'file3'를 수정하면, 원본 파일도 동일하게 적용된다.

 


[root@CentOS /test]# rm file2
rm: remove 일반 파일 `file2'? y

[root@CentOS /test]# cat file2
cat: file2: 그런 파일이나 디렉터리가 없습니다

[root@CentOS /test]# cat file3
cat: file3: 그런 파일이나 디렉터리가 없습니다

[root@CentOS /test]# ls -li
합계 0
131379 lrwxrwxrwx. 1 root root 5 2015-12-23 18:31 file3 -> file2

 

- 원본 파일 'file2'를 삭제하면, 링크 파일 'file3'에 파일도 삭제된다.



4. 디바이스 파일

 

 디바이스 파일

 - 블럭 디바이스 파일 (Block Device File)

 - 캐릭터 디바이스 파일 (Character Device File) = Raw Device File

 블럭 디바이스 파일

 - 블럭 단위 I/O 발생

 - 디스크 디바이스이면, I/O 단위는 4K(4096Byte)

 캐릭터 디바이스 파일

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

 - 디스크 디바이스이면, I/O 단위는 512Bytes(1 Sector = 512Byte) 

 주-디바이스 번호

 - 장치의 종류

 - 장치의 종류가 다르면, 주-디바이스 번호가 다르다.

 부-디바이스 번호

 - 개별적인 장치의 종류

 - 개별적인 장치의 종류가 다르면, 부-디바이스 번호가 다르다.

 

 - 동작 방법의 차이

 - 같은 장치라도 동작 방법이 다르면, 부-디버이스 번호가 다르다.

 

[root@CentOS /test]# ls -l /dev   (모든 디바이스 파일을 보여줌)


[root@CentOS /test]# ls -l /dev | grep '^b'  (블럭 디바이스 파일만 보여줌)
brw-rw----. 1 root disk    253,   0 2015-12-23 14:43 dm-0
brw-rw----. 1 root disk    253,   1 2015-12-23 14:43 dm-1
~~~ 중간 생략 ~~~

 

[root@CentOS /test]# ls -l /dev | grep '^c'  (캐릭터 디바이스 파일만 보여줌)
crw-rw----. 1 root video    10, 175 2015-12-21 19:44 agpgart
crw-rw----. 1 root root     10,  55 2015-12-21 19:45 autofs
~~~ 중간 생략 ~~~

 

 

 

[root@CentOS /test]# cd ..
[root@CentOS /]# rm -rf test

 

'서버 > 작업중' 카테고리의 다른 글

16-17사이  (0) 2016.01.28
15-16사이 II  (0) 2016.01.27
15-16사이 I  (0) 2016.01.27
13-14사이  (0) 2016.01.27
Posted by 김정우 강사(카카오톡 : kim10322)
,


Q