Notice
Recent Posts
Recent Comments
Link
«   2026/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
Tags
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발자 되기

File 본문

LINUX

File

KimMINHun 2021. 3. 25. 23:55

File의 필요한 이유

- 변수에 저장된 정보들은 실행이 끝나면 모두 사라진다.

- 정보를 영속적으로 저장하기 위해서는 파일에 저장해야 한다.

 

유닉스 파일

- 모든 데이터를  연속된 바이트 형태로 저장한다.

 

일반 파일

- 데이터를 가지고 있으면서 디스크에 저장된다.

- 텍스트 파일, 이진 파일(binary file)

 

디렉터리 또는 폴더

- 파일들을 계층적으로 조직화하는 데 사용되는 일종의 특수 파일

- 디렉터리 내에 파일이나 서브디렉터리들이 존재한다.

 

장치 파일

- 물리적인 장치에 대한 내부적인 표현

- 키보드(stdin), 모니터(stdout), 프린터 등도 파일 처럼 사용 

 

심볼릭 링크 파일

- 어떤 파일을 가리키는 또 하나의 경로명을 저장하는 파일

 

리눅스에서 지원하는 파일 종류

파일 종류 표시 설명
일반 파일 - 데이터를 갖고 있는 텍스트 파일 또는 이진 파일
디렉터리 파일 d 디렉터리 내의 파일들의 이름들과 파일 정보를 관리하는 파일
문자 장치 파일 문자 단위로 데이터를 전송하는 장치를 나타내는 파일
블록 장치 파일 b 블록 단위로 데이터를 전송하는 장치를 나타내는 파일
FIFO 파일 p 프로세스 간 통신에 사용되는 이름 있는 파이프
소켓 s 네트워크를 통한 프로세스 간 통신에 사용되는 파일
심볼릭 링크 l 다른 파일을 가리키는 포인터와 같은 역할을 하는 파일

$ file [옵션] 파일 : 파일의 타입 결정

 

파일 상태(file status)

- 파일에 대한 모든 정보

- 블록수, 파일 타입, 접근권한, 링크수, 파일 소유자의 사용자 ID

- 그룹 ID, 파일 크기, 최종 수정 시간 등

- 메타데이터(metadata)

 

파일 속성(file attribute)

파일 속성 의미
파일 크기 파일의 크기(K 바이트 단위)
파일 종류 일반파일(-), 디렉터리(d), 링크(l), 파이프(p), 소켓(s), 디바이스(c or d) 등의 파일 종류를 나타낸다.
접근권한 파일에 대한 소유자, 그룹, 기타 사용자의 읽기(r)/쓰기(w)/실행(x) 권한
하드 링크 수 파일에 대한 하드 링크 개수
소유자 및 그룹 파일의 소유자 ID 및 소유자가 속한 그룹
파일 크기 파일의 크기(바이트 단위)
최종 수정 시간 파일의 생성 or 마지막 수정 시간

 

$ stat [옵션] 파일 

: 파일의 자세한 상태 정보를 출력한다.

 

 

$ cat[-n] 파일

: 파일의 내용을 화면에 출력한다. 파일을 지정하지 않으면 표준입력 내용을 그대로 화면에 출력

 

$ more 파일

: 파일의 내용을 페이지 단위로 화면에 출력한다.

 

$ head [-n] 파일

: 파일의 앞부분을 화면에 출력한다. 파일을 지정하지 않을 시 표준 입력 내용을 대상으로 한다.

 

$ tail [-n] 파일

: 파일의 뒷 10개 라인을 화면에 출력한다. 파일을 지정하지 않을시 표준입력 내용을 대상으로 한다.

 

$ wc [-lwc] 파일

: 파일에 저장된 줄(l), 단어(w), 문자(c)의 개수를 세서 출력한다. 파일을 지정하지 않을시 표준입력 내용을 대상으로 한다.

 

파일 복사 cp(copy)

$cp [-i] 파일1 파일2

:파일1을 파일2에 복사한다. -i 는 대화형 옵션이다.- cp -i : 복사 대상 파일과 이름이 같은 파일이 이미 존재하면 덮어쓰기(overwrite), 보다 안전한 사용법은 대화형-i(interactive) 옵션을 사용

 

$cp 파일 디렉터리

: 파일을 지정된 디렉터리에 복사한다.

 

$cp 파일1 ..... 파일n 디렉터리

: 여러 개의 파일들을 지정된 디렉터리에 모두 복사한다.

 

$cp [-r] 디렉터리1, 디렉터리2

: r은 리커전 옵션으로 디렉터리1 전체를 디렉터리2에 복사한다.

 

파일 이동 mv(move)

 

$ mv [-i] 파일1 파일2

: 파일1의 이름을 파일2로 변경한다. -i는 대화형 옵션이다.

 

$ mv 파일 디렉터리

: 파일을 지정된 디렉터리로 이동한다.

 

$ mv 파일1 ..... 파일n 디렉터리

: 여러 개의 파일들을 지정된 디렉터리로 모두 이동한다.

 

$ mv 디렉터리1, 디렉터리2

: 디렉터리1을 지정된 디렉터리2로 이름을 변경한다. (두 인자가 모두 디렉터리인 경우, 디렉터리 이름이 변경됨)

 

파일 삭제 rm(remove)

 

$rm [-i] 파일+

: 파일을 삭제한다. -i는 대화형 옵션

 

$ rm [-ri] 디렉터리

: -r은 리커전 옵션으로 디렉터리 아래의 모든 것을 삭제한다. 

 

링크

- 기존 파일에 대한 또 하나의 새로운 이름

 

$ ln [-s] 파일1 파일2

: 파일1에 대한 새로운 이름(링크)로 파일2를 만들어 준다. -s 옵션은 심볼릭 링크

 

$ ln [-s] 파일1 디렉터리

: 파일1에 대한 링크를 지정된 디렉터리에 같은 이름으로 만들어 준다.

 

하드링크

- 기존 파일에 대한 새로운 이름이라고 생각할 수 있다.- 실제로 기존 파일을 대표하는 i-노드를 가리켜 구현한다.

 

심볼릭링크

- 다른 파일을 가리키고 있는 별도의 파일- 실제 파일의 경로명을 저장하고 있는 일종의 특수 파일- 이 경로명이 다른 파일에 대한 간접적인 포인터 역할을 한다.

 

'LINUX' 카테고리의 다른 글

Find and Grep  (0) 2021.04.08
Redirection  (0) 2021.03.28
Process  (0) 2021.03.27
Privilege  (0) 2021.03.26
Directory  (0) 2021.03.25