컴퓨터 세상/LiNuX

파일과 디렉토리

Jimin Daddy 2023. 3. 21. 12:38

* 리눅스에서의 파일은 일반 파일, 디렉토리, 심볼릭 링크, 장치 파일로 구분.

* 일반파일 :
  데이터를 저장하는 데 주로 사용. 텍스트 파일, 실행 파일, 이미지 파일 등이 일반 파일에 해당.

* 디렉토리 :
  디렉토리도 파일로 취급하며, 디렉토리 파일에는 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장.

* 심볼릭 링크 :
  원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한 것으로 윈도의 바로가기 파일과 비슷함.

* 장치 파일 :
  하드 디스크나 키보드 같은 각종 장치도 파일로 취급. 장치 파일은 리눅스 시스템에 부착된 장치들을 관리하기 위한 특수 파일임.
  리눅스 시스템에서는 각종 장치를 관리하기 위해 시스템 관리자는 해당 장치 파일에 접근해야 함. 대부분의 장치 파일은 /dev
  디렉토리 아래에 위치함.
  file 이라는 명령으로 파일의 종류를 알 수 있다.
  사용 법) file 파일명(디렉토리 명)

* 디렉토리의 출발점은 루트(/) 디렉토리이며, 최상단 루트 디렉토리아래 각 서브 디렉토리(하위 디렉토리) 등이 있다.
  그리고 각 서브 디렉토리(하위 디렉토리) 위에는 부모 디렉토리 또는 상위 디렉토리가 존재한다.
  상위 디렉토리는 ".." 로 표시한다.

* 디렉토리 이름의 끝에는 "/"가 붙고, "@"이 붙어 있으면 심볼릭 링크이다.

* 주요 디렉토리 설명
  - dev : 장치 파일이 담긴 디렉토리
  - home : 사용자 홈 디렉토리가 생성되는 디렉토리
  - media : DVD/CD나 USB 같은 외부 장치를 연결하는 디렉토리
  - opt : 추가 패키지가 설치되는 디렉토리
  - root : root 계정의 홈 디렉토리. 루트(/) 디렉토리와 다른 것임.
  - sys : 리눅스 커널과 관련된 파일이 있는 디렉토리
  - usr : 기본 실행 파일과 라이브러리 파일, 헤더 파일 등 많은 파일이 있음. Unix System Resource의 약자임.
  - boot : 부팅에 필요한 커널 파일을 가지고 있다.
  - etc : 리눅스 설정을 위한 각종 파일을 가지고 있다.
  - lost+found : 파일 시스템에 문제가 발행하여 복구할 경우, 문제가 되는 파일이 저장되는 디렉토리로 보통은 비어 있다.
  - mnt : 파일 시스템을 임시로 마운트하는 디렉토리
  - proc :프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리
  - run : 실행중인 서비스와 관련된 파일이 저장
  - srv : FTP나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장.
  - tmp : 시스템 사용 중에 발생하는 임시 데이터가 저장. 이 디렉토리에 있는 파일은 재시작하면 모두 삭제됨.
  - var : 시스템 운영 중에 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장

* 작업 디렉토리
  - 현재 디렉토리를 의미하며, "."으로 표시한다. 작업 디렉토리의 위치는 "pwd" 명령으로 알 수 있다.

* 홈 디렉토리
  - 각 사용자에게 할당된 디렉토리로 사용자 계정을 처음 만들 때 지정. "~" 로 표시한다.
    홈 디렉토리를 나타내려면 user1일 경우 "~user1"로 표시.

* 절대 경로명과 상대 경로명
  - 절대 경로명은 루트 디렉토리부터 시작하는 경로명이며, 상대 경로명은 현재 디렉토리를 기준으로 하는 경로명임.
    따라서 상대 경로명은 현재 작업하는 디렉토리에 따라 변경될 수 있다.

* 파일과 디렉토리 규칙
  - "/" 를 사용할 수 없다.
  - 알파벳, 숫자, 하이픈(-), 언더바(_), 마침표(.)만 사용
  - 공백문자, *, | , " , ' , @ , # , $ , % , ^ , & 등을 사용할 수 없다.
  - 영문은 대문자와 소문자를 구별하여 다른 문자로 취급.
  - "."로 시작하면 숨김파일로 간주함.

## 디렉토리 관련 명령어
  * pwd 명령어
    - 기능 : 현재 디렉토리의 위치를 확인. 현재 디렉토리의 절대 경로를 출력함.
    - ex) junsu@localhost ~]$ pwd
  * cd 명령어
    - 기능 : 지정한 디렉토리로 이동
    - 형식 : cd [디렉토리]   - 절대 경로명 및 상대 경로명 모두 사용 가능
    - ex) cd, cd /usr, cd /home/junsu, cd ../../home/junsu
            홈 디렉토리 이동은 cd ~ 나 그냥 cd 를 사용하면 이동함.
  * ls 명령어 (비슷한 명령으로 dir (ls 와 유사) 과 vdir (ls -l 과 유사) 이 있다)
    - 기능 : 디렉토리의 내용을 출력
    - 형식 : ls [옵션] [디렉토리 명이나 파일명]
    - 옵션
      -a : 숨김 파일을 포함하여 모든 파일을 출력 ("."로 시작하는 파일명은 숨김파일임.)
      -d : 디렉토리 자체의 정보를 출력
      -i : 첫 번째 inode 번호를 출력
      -l (L 소문자) : 파일의 상세 정보를 출력
      -A : "." 나 ".."를 제외한 모든 파일을 출력
      -F : 파일의 종류를 표시 (* : 실행파일, / : 디렉토리, @ : 심볼릭 링크)
      -L : 심볼릭 링크 파일의 경우 원본 파일의 정보를 출력
      -R : 하위 디렉토리까지 출력
    - ex) ls , ls -F , ls -al /tmp

* 파일의 상세 정보
  - ls -l 명령을 사용했을 경우 파일마다 나타나는 상세 정보.
    ex) drwxr-xr-x. 2 user1 user1 6 11월 7 08:45 photo
   

필드 번호 필드 값 내용
1 d 다음과 같은 파일 종류를 나타냄
- : 일반(정규) 파일
d : 디렉토리 파일
l (소문자 L) : 심볼릭 링크 파일
b : 블록 단위로 읽고 쓰는 블록 장치 파일
c : 섹터 단위로 읽고 쓰는 문자 장치 파일
p : 파이프 파일(프로세스 간 통신에 사용되는 특수 파일)
s : 소켓 (네트워크 통신에 사용되는 특수 파일)
2 rwxr-xr-x 파일 접근 권한. 파일의 소유자, 그룹, 기타 사용자가 읽고 수정하고 실행할 수 있는 권한이
어떻게 부여되어 있는지를 보여줌.
3 2 하드 링크의 개수 (하드 링크는 inode 값이 같은 파일 이름만 다른 파일임.)
따라서 같은 inode 값을 갖는 파일의 수라고 생각하면 된다.
4 user1 파일 소유자
5 user1 파일이 속한 그룹
6 6 파일 크기 (byte)
7 11월 7 08:45 파일이 마지막으로 수정된 시간
8 photo 파일명

** 하드링크와 심볼릭 링크의 차이점.
   하드링크란 원본 파일을 가르키는 게 아닌 원본 파일이 가르키는 시스템 데이터를 가리킨다.
   심볼릭 링크는 원본파일을 가르키게 된다.
   따라서 하드 링크는 원본 파일을 삭제하여도 하드 링크내에 데이터가 남아 있지만,
   심볼릭 링크는 원본 파일을 삭제하면 사용이 불가하다.
   하드 링크를 생성하는 것은 cp 명령을 사용하여 파일 하나를 새로 copy 하는 것과는 다른 것이
   cp 명령을 통한 파일 복사는 같은 용량의 파일을 하나 더 생성하지만
   하드 링크를 통한 파일 생성은 말 그대로 링크를 나타내는 파일만 생성될 뿐 용량은 늘어나지 않는다.
   하드 링크는 같은 inode를 갖는 파일을 생성하는 것이며, 심볼릭 링크는 다른 inode를 갖는 파일을 생성하는 것이다.
  

'컴퓨터 세상 > LiNuX' 카테고리의 다른 글

리눅스의 기초 명령어  (0) 2023.03.09
리눅스의 기초  (0) 2023.03.09
작업 예약  (0) 2022.05.26
작업 제어 (포그라운드&백그라운드)  (0) 2022.05.19
프로세스 관리 명령  (0) 2022.05.17