티스토리 뷰

Linux

3. 파일

Howu 2023. 4. 3. 13:18

1) 파일과 디렉토리의 구조

  • 파일: 데이터를 담는 그릇
  • 파일 시스템: 파일을 관리하기 위한 시스템
  • 계층 구조: Tree 형태의 계층 구조
    • root 디렉토리의 목록

 

2) 파일의 종류

  • 일반 파일: 텍스트 파일이나 동양상 파일
  • 디렉토리: 파일의 한 종류, 윈도우의 폴더와 같은 개념
  • 심볼릭 링크 파일: 어떤 다른 파일을 가리키는 파일, 바로가기 같은 개념
  • 블록 디바이스 파일: 블록 디바이스를 제어하기 위한 파일
  • 문자 디바이스 파일: 문자 디바이스를 제어하기 위한 파일
  • 파이프 파일: 파이프를 나타내는 파일. 프로세스간 통신에 사용됨
  • 소켓: 소켓을 나타내는 파일. 프로세스간 통신에 사용됨

 

3) 대표적인 디렉토리

  • /: 루트 디렉토리, 모든 디렉토리의 최상위 부모
  • /bin: 모든 사용자가 사용할 수 있는 여러가지 실행 파일 위치
  • /sbin: 시스템 관리자 권한으로 실행해야 하는 실행 파일 위치
  • /etc: 여러 가지 설정 파일
  • /lib: 공유 라이브러리 디렉토리
  • /home: 사용자들의 홈 디렉토리
  • /mnt: 일시적으로 파일 시스템에 마운트하는 경우 사용하는 디렉토리
  • /proc, /sys: 시스템 정보를 설정/조회할 수 있는 디렉토리
    • os에서 사용자에게 보여주기 위한 정보 설정
  • /tmp: 임시 디렉토리
  • /usr: 사용자가 추가한 실행 파일, 라이브러리 등의 s/w 저장
  • /dev: 디바이스 드라이버가 사용하는 디바이스 파일 디렉토리

 

4) 디렉토리 개념

  • 현재 작업 디렉토리(Current Working Directory)
  • 홈 디렉토리(home directory)
  • 상대경로와 절대경로(relative path, absolute path)

 

5) 아이노드 그리고 하드링크와 소프트링크 

  • inode: 파일의 여러가지 데이터들을 저장해놓은 구조체
  • hard-link -> inode1 -> FileData
  • soft-link == symlink -> inode2 -> LinkData(대상이 되는 파일의 경로)
  • file = name - inode - data

 

6) 파일 다루기

$ touch hahaha //hahaha 파일을 생성
$ rm hahaha //hahaha 파일을 삭제
$ nano testfile //nano 편집기에서 testfile이라는 파일 생성
$ cat testfile //testfile의 내용을 보여줌
$ mv testfile apple //파일명 변경: testfile -> apple
$ mv apple /tmp/pineapple //tmp폴더에 파일명을 pineapple로 저장
$ cat /tmp/pineapple //tmp폴더에 pineapple 파일 출력
$ mv /tmp/pineapple . //현재 디렉토리로 pineapple 파일을 가져와라
$ mv pineapple ../../tmp //상위 2단계 디렉토리인 tmp폴더로 pineapple 이동
$ cat /tmp/pineapple // cat ../../tmp/pineapple과 동일 (1) 절대경로 (2) 상대경로)
  • ls -al을 했을 때 .과 ..의 디렉토리를 갖는 것을 확인할 수 있다.

 

7) 디렉토리 다루기

$ mkdir testdir //testdir 디렉토리 생성
$ rm -rf testdir //testdir 디렉토리 한번에 삭제 가능
  • -rw-r: 파일
  • drwxr-xr: 디렉토리
  • 디렉토리를 삭제하기 위해서는 비어있지 않아야 한다.

 

8) 아이노드와 하드링크

$ ln pineapple hello //pineapple이라는 파일을 hello라는 파일의 하드링크로 만들자.
$ cat pineapple
$ cat hello //2,3번 라인의 출력값은 같은 아이노드를 공유하므로 같다.
  • Modify: 파일의 컨텐츠가 변경된 시간
  • Change: inode가 변경된 시간

 

9) 소프트링크

  • -s: --symbolic: make symbolic links instead of hard links
  • 소프트링크를 생성하여 pineapple과 hello 연결
$ ln -s pineapple hello //소프트링크로 생성
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함