전공과목 정리/리눅스시스템 + 시스템프로그래밍

[리눅스시스템🐧] 4장 파일 사용

최연재 2024. 1. 2. 22:36

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)

 

4.1 파일 복사 : cp(copy)

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

: 파일1을 파일2에 복사한다. -i는 대화형 옵션이다.

  • 복사 대상 파일과 이름이 같은 파일이 존재하면 덮어쓰기.
  • 대화형 옵션을 사용하면 같은 파일이 존재할 때 overwrite 여부를 질문함.
$ cp 파일 디렉터리

: 파일을 디렉터리로 복사

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

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

$ cp [-r] 디렉터리1 디렉터리 2
  • r은 리커전 옵션(하위 디렉터리를 포함한 디렉터리 전체)으로 디렉터리1 전체를 디렉터리2에 복사한다.

 

4.2 파일 이동 : mv(move)

- 파일을 디렉터리로 이동

$ mv 파일 디랙터리

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

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

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

 

- 디렉터리 이름 변경

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

: 디렉터리1을 지정된 디렉터리2로 이름 변경

 

4.3 파일 삭제 : rm(remove)

$ rm [-i] 파일+

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

$ rm [-ri] 디렉터리

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

 

4.4 링크

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

 

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

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

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

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

 

1) 하드 링크(hard link)

- 기존 파일에 대한 새로운 이름이라고 생각할 수 있다.

- 실제로 기존 파일을 대표하는 i-노드를 가리켜 구현한다.

 

2) 심볼릭 링크(symbolic link)

- 다른 파일을 가리키고 있는 별도의 파일이다.

- 실제 파일의 경로명을 저장하고 있는 일종의 특수 파일

- 이 경로명이 다른 파일에 대한 간접적인 포인터 역할을 한다.

 

4.5 파일 속성

1) 파일 속성 (file attribute)

- 블록 수, 파일 종류, 접근 권한, 링크 수, 소유자 및 수정시간

  • 블록 수 : 블록의 개수 (k 바이트 단위)
  • 파일 종류 : 일반 파일(-), 디렉터리(d), 링크(l), 파이프(p), 소켓(s), 디바이스(b 혹은 c) 등의 파일 종류
  • 접근 권한 : 파일에 대한 소유자, 그룹, 기타 사용자의 읽기(r), 쓰기(w), 실행(x) 권한
  • 하드 링크 수 : 파일에 대한 하드 링크 수
  • 소유자 및 그룹 : 파일의 소유자 및 소유자가 속한 그룹
  • 파일 크기 : 파일의 크기(바이트 단위)
  • 최종 수정 시간 : 파일을 생성 혹은 최후로 수정한 시간

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

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

 

$ file 파일

: 파일의 종류에 대한 자세한 정보를 출력한다.

 

4.6 접근권한 (permission mode)

1) 접근 권한

- 소유자(owner), 그룹(group), 기타(others)로 구분하여 관리

- 읽기 권한 r

  • 파일에 대한 읽기 권한
  • 디렉터리 내에 파일명을 읽을 수 있는 권한

- 쓰기 권한 w

  • 파일에 대한 쓰기 권한
  • 디렉터리 내에 파일을 생성하거나 삭제할 수 있는 권한

- 실행 권한 x

  • 파일에 대한 실행 권한
  • 디렉터리 내로 탐색을 위해 이동할 수 있는 권한

ex) rwxr-xr-x : 소유자만 읽기, 쓰기, 실행 가능. 그룹, 기타 사용자는 읽기, 실행 가능

 

2) 접근 권한 변경 : chmod (change mode)

$ chmod [-R] 접근 권한 파일 혹은 디렉터리

- 파일 혹은 디렉터리의 접근 권한을 변경한다.

- R 옵션을 사용하면 지정된 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 접근권한을 변경

 

3) 접근 권한 표현 : 8진수

- 권한이 있으면 1, 없으면 0으로 표시

ex) rwxr-xr-x -> 111 101 101 -> 755

 

4) 접근 권한 표현 : 기호

- 기호를 이용한 접근 권한 변경

  • 사용자 범위 : [ u | g | o | a ]+ // user, group, other, all
  • 연산자 : [ + | - | = ]  // 권한 추가, 권한 제거, 권한 설정
  • 권한 : [ r | w | x ]+ // 읽기 권한, 쓰기 권한, 실행 권한

ex) 

$ chmod g-w test.txt

 

4.7 기타 파일 속성 변경

1) 소유자 변경 : chown (change owner)

$ chown 사용자 파일
$ chown [-R] 사용자 디렉터리

- 파일 혹은 디렉터리의 소유자를 지정한 사용자로 변경한다.

- R 옵션 : 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 소유자를 변경

 

2) 그룹 변경 : chgrp (change group)

$ chgrp 사용자 파일
$ chgrp [-R] 그룹 디렉터리

- 파일 혹은 디렉터리의 그룹을 지정된 그룹으로 변경한다.

- R 옵션을 사용하면 지정된 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 그룹을 변경

 

3) 최종 수정 시간 변경 : touch

$ touch 파일

- 파일의 최종 사용 시간과 최종 수정 시간을 현재 시간로 변경함.