본문 바로가기

리눅스 공부/리눅스 익스프레스

[리눅스 익스프레스] 03. 디렉토리와 파일

[비고] 상시 추가중


 

Ch03. 디렉토리와 파일

 " 리눅스 시스템 상에서 모든 데이터는 파일 단위로 처리한다 " 

 

 

[파일의 구성요소]

  • 파일 이름
  • I-node (Index Node)
    - 디스크 상에서 데이터가 저장된 위치 정보 기록
    - 파일의 종류, 소유권(사용자 및 그룹), 액세스 모드, 타임스탬프
  • 데이터 블록

 

[파일의 종류]

  • 일반 파일
  • 디렉토리 파일
    - 트리 구조로 구성됨
  • 특수 파일 (파이프, 소켓, 주변장치)
  • 문서 파일
  • 이진 파일

 

[링크파일] 

  • 하드 링크 : 원본과 동일한 I-node를 공유하는 이름을 새로 생성 ln [원본명] [새 파일명]
                    >> 원본과 하드링크 중 어느 하나를 삭제해도 나머지는 그대로 남아있는다.
                    >> 원본과 하드링크 중 어느 하나를 수정하면 나머지도 영향을 받는다.
                         (하드 링크 파일 수정은 직접 대상 파일에 작용하기 때문)  
  • 심볼릭 링크 (소프트 링크) : 원본에 대한 경로를 포함하는 파일로 다른 I-node를 가짐. ln -s [원본명] [새 파일명]
                    >> 원본을 삭제하면 심볼릭 링크는 영향을 받지만 심볼릭 링크를 삭제해도 원본은 그대로 남아있는다.
                    >> 원본과 심볼릭 링크 중 어느 하나를 수정하면 나머지도 영향을 받는다.
                         (심볼릭 링크 파일 수정은 직접 대상 파일에 작용하는 것처럼 수행하기 때문 - feat. 운영체제 )

 

[정보 확인 ls의 옵션들]

-a 숨긴 파일포함 모든 파일 리스트 출력
-i I-node번호 출력(1열)
-l 파일 상세 정보 출력
-F 파일 종류 표시 
-L 심볼릭 링크 파일을 원본 파일의 정보로 출력
-R 하위 디렉토리 리스트 출력

 

[실행 예시]

ls -F 실행예시

  • 파일 종류 기호 출력
    @ 심볼릭 링크 파일
    실행 파일
    디렉토리

 

ls -li 실행 예시

  • 파일 종류 문자 출력
    l 심볼릭 링크 파일
    - 일반 파일
    d 디렉토리
  • 원본파일 test.c 와 하드링크 파일 hlink의 I-node가 동일 53186210
  • 소프트링크 파일 slink는 원본파일 test.c를 가르킴

 

 

[유용한 터미널 명령어] 

  • 현재 디렉토리 위치 확인 pwd (print working directory)
  • 계층적 디렉토리 생성 시 중간단계 자동 생성 mkdir -p
  • 비어 있지 않은 디렉토리 삭제 rm -r (rmdir로는 불가능!)
    디렉토리 삭제 시 부모 디렉토리가 비게 되는 경우 자동 삭제 rmdir -p

 

[파일 명령어] (임시)

touch 파일 생성

cp  파일 복사

find 파일 찾기

mv 파일 이동

 


touch [파일명]
 - 파일이 없음 : 새로 생성 (새로 생성을 원하지 않으면 touch -c [파일명])
 - 파일이 있음 : 최종 수정시간 변경

touch -t [CCYYMMDDhhmmss] [파일명]
 - 주어진 시간으로 최종 수정시간 변경
 - 연도지정 생략 가능

 

cp

 

find

 

mv
파일 이동 or 파일 명 변경 mv [파일명] [디렉토리명] or mv [파일명] [새 파일명]

 

파일 내용 보기
 - 전체보기 : cat [파일명]
 - 10즐만 : head [파일명]

https://unix.stackexchange.com/questions/149358

 

Is there a difference between hardlinking with cp -l or ln?

I am implementing a backup scheme using rsync and hardlinks. I know I can use link-dest with rsync to do the hardlinks, but I saw mention of using "cp -l" before "link-dest" was implemented in rsync.

unix.stackexchange.com

링크파일 만들 때 cp -l, cp -s 와 ln, ln -s로 만드는 것의 차이점

1. cp는 링크 만들 때 r 옵션(recursion) 함께 사용 가능

2. ln이 cp보다 시스템 콜을 덜 한다.