[Linux] Chapter 4 : 파일 사용

Lern-Backup·2021년 10월 22일
0

Linux

목록 보기
2/9

📗 4.1 파일 복사

  • 파일 복사
    $ cp 파일1 파일2 : 파일 1을 파일 2에 복사
    $cp [-i] 파일1 파일2 : i는 대화형 옵션으로, 만약 동일한 이름의 파일이 존재한다면 덮어쓰기 할 것인지 물어봄 (y로 답하면 덮어쓰기)
  • 파일을 디렉터리로 복사
    $cp 파일 디렉터리 : 파일을 지정된 디렉터리에 복사
  • 여러 개의 파일을 디렉터리로 복사
    $ cp 파일1 ... 파일n 디렉터리 : 여러 개의 파일들을 지정된 디렉터리에 모두 복사
  • 디렉터리 전체 복사
    $ cp [-r] 디렉터리1 디렉터리 2 : 디렉터리 1 전체를 디렉터리 2에 복사

📗 4.2 파일 이동

  • 파일 이동
    $ mv 파일1 파일2 : 파일1의 이름을 파일2로 변경 ⬅ 파일1의 이름은 존재하지 않고 파일2로 이름이 바뀜
    $ mv -i 파일1 파일2 : 대화형 옵션으로 덮어쓰기 여부를 물어봄
  • 파일 ➡ 디렉터리
    $ mv 파일 디렉터리 : 파일을 지정된 디렉터리로 이동
  • 여러 개의 파일 ➡ 디렉터리
    $ v 파일1 ... 파일n 디렉터리 : 여러 개의 파일들을 지정된 디렉터리로 모두 이동
  • 디렉터리 이름 변경
    $ mv 디렉터리1 디렉터리2 : 디렉터리1을 지정된 디렉터리2로 이름 변경

📗 4.3 파일 삭제

  • 파일 삭제
    $ rm 파일 : 파일(들) 삭제
    rm -i 파일 : 파일 삭제 여부 물어봄
  • 디렉터리 전체 삭제
    $ rm -r 디렉터리 : 디렉터리 아래의 모든 것을 삭제
    $ rm -ri 디렉터리 : 디렉터리 삭제 여부 물어봄
    $ rmdir 디렉터리 : 비어 있는 디렉터리만을 삭제하는 명령어

📗 4.4 링크

링크란?

링크란 기존 파일에 대한 또 하나의 새로운 이름이라고 할 수 있음

  • 링크 명령어
    $ ln 파일1 파일2 : 파일1에 대한 링크로 파일2를 만듬
    $ ln 파일1 디렉터리 : 파일1에 대한 링크를 지정된 디렉터리에 같은 이름으로 만들어줌

하드 링크

  • 하드 링크(hard link)는 기존 파일에 대한 새로운 이름
  • $ ln hello.txt hi.txt : 기존 파일 hello.txt에 대한 새로운 링크로 hi.txt를 만들어줌, hi.txt는 hello.txt의 또 다른 이름
  • 둘 중 한 파일의 내용을 수정하면 똑같이 수정됨, 별도의 파일이 아니기 떄문
  • 둘 중에 한 파일을 삭제하면 이름만 하나 없어지게 됨, 링크 수를 1 감소시키는 것
  • 링크 수가 0이 되면 파일을 완전히 삭제

심볼릭 링크

  • 심볼릭 링크(symbolic link)는 다른 파일을 가리키고 있는 별도의 파일
  • 실제 파일의 경로명을 저장하고 있는 일종의 특수 파일
  • 다른 파일에 대한 간접적인 포인터 역할
  • $ ln -s hello.txt hi.txt : hi.txt라는 심볼릭 링크 파일을 만들게 됨, 단지 hello.txt 파일의 위치를 나타냄
  • 원본 파일을 삭제하게 되면 링크 파일은 무용지물

링크를 이용하면 다른 디렉터리에 있는 파일도 경로명으로 기술해 내 디렉터리에 새로운 이름으로 링크 만들 수 있음 (디렉터리 이동해서 파일을 참조해야 하는 불편함 해소)
-ex) $ ln -s usr/bin/gcc cc


📗 4.5 파일 속성

  • 파일 속성의 종류
    $ ls -sl cs1.txt

파일의 속성 예

파일 속성의미
파일 크기4파일 크기 4K 바이트
파일 종류-일반 파일 (-)
접근 권한rw-rw-r--소유자(rw-), 그룹(rw-), 기타사용자(r--)
하드 링크 수1파일의 하드 링크 개수
소유자명chang파일 소유자의 소유자명
그룹명cs파일 소유자의 그룹명
파일 크기2088파일 크기 2088 바이트
최종 수정 시간10월23일 13:37파일을 최종 수정한 시간
파일 이름cs1.txt파일의 이름

파일의 속성

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

파일 크기

  • 킬로바이트(KB), 바이트(B) 단위 두가지로 나타냄

파일 종류

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

파일의 소유자

  • 파일을 소유하는 사용자의 이름 혹은 ID
  • 시스템 관리자 ➡ 슈퍼유저 : root

파일의 그룹

  • 파일 소유자가 속한 그룹
  • 보안 관리를 위해 동일한 성격의 사용자들을 하나의 그룹으로 묶어서 관리

최종 수정 시간

  • 파일 내용을 최후로 수정한 시간을 나타냄

📗 4.6 접근권한

  • 파일의 접근권한(permission mode)은 읽기(r), 쓰기(w), 실행(x) 권한을 의미
  • 파일의 접근권한이 위 그림과 같다면 이 파일의 소유자는 이 파일을 읽고, 쓰고, 실행하는 것이 가능하며 그룹 및 기타 사용자들은 읽기와 실행만 가능함

📗 4.7 접근권한 변경

  • 접근권한 변경 명령어
    $ chmod 접근권한 파일 or 디렉터리 : 파일이나 디렉터리의 접근권한 변경
    $ chmod [-R] 접근권한 파일 or 디렉터리 : 지정된 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 접근권한 변경

8진수를 이용한 접근권한 변경

  • 파일의 접근권한을 8진수로 표시
  • 위 그림과 같이 소유자의 읽기, 쓰기, 실행 각 권한에 대해 1비트를 할당하여 권한이 있으면 1 없으면 0으로 표시
  • $ chmod 644 cs1.txt : 접근권한을 rw-r--r--로 변경

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

  • 기호를 이용해 파일의 변경할 접근권한을 기술

  • ex) $ chmod g-w cs1.txt1 : 그룹(g)에서 쓰기(w) 권한 제거

📗 4.8 기타 파일 속성 변경

소유자 변경 : chwon(change owner)

  • 파일 혹은 디렉터리의 소유자를 지정된 사용자로 변경, 슈퍼유저만 사용가능
    $ chown 사용자 파일
    $ chown [-R] 사용자 디렉터리
  • -R을 사용하면 하위 디렉터리까지 변경

그룹 변경 : chgrp(change group)

  • 파일 혹은 디렉터리의 그룹을 지정된 그룹으로 변경
  • 파일의 소유자는 해당 파일의 그룹을 소유자가 속한 다른 그룹으로만 변경 가능
    $ chgrp 그룹 파일
    chgrp [-R] 그룹 디렉터리
  • -R을 사용하면 하위 디렉터리까지 변경

최종 수정 시간 변경

  • 파일의 최종 사용 시간과 최종 수정 시간 변경
    $ touch 파일
  • 해당 파일이 없으면 파일 크기가 0인 이름만 있는 파일을 만들어줌
profile
공부 백업용

0개의 댓글