리눅스 쉘 사용법 이해 - 하드 링크와 소프트 링크

SummerToday·2024년 1월 30일

도커, 서버 기술

목록 보기
6/34
post-thumbnail

파일 복사 - cp 명령

  • Copy의 줄임말로 파일이나 디렉토리를 복사할 때 사용하는 명령어이다.

    cp [옵션][복사할 디렉토리/파일] [복사 될 디렉토리/파일]

    • cp 명령어의 옵션을 제외한 인자 값은 생략이 불가능하다

    • 경로를 지정하지 않으면 현 위치를 Defualt로 한다.

    • 복사할 때 새로운 이름을 지정하여 복사할 수 있다.

    • 다양한 옵션을 사용하여 기존의 파일이나 디렉토리를 보호하는 등의 행동을 취할 수 있다.

      [옵션]
      -i : 복사될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻는다.
      -b : 복사될 파일이 이름이 이미 존재할 경우, 백업파일을 생성한다.
      -f : 복사 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 한다.
      -r : 하위 디렉토리 까지 모두 복사한다.
      -a : 원본 파일의 속성, 링크 정보까지 모두 복사한다.
      -p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사한다.
      -v : 복사 진행 상태를 출력한다.

      ex. cp -rf * 폴더 : 현재 위치의 모든 폴더와 하위 폴더 까지 대상 폴더에 강제로 덮어쓴다.


하드링크

  • ln A B
    원본 파일과 동일한 inode를 가지며 원본 파일이 삭제되더라도 링크 파일을 여전히 사용 가능하다.
    원본파일과 동일한 용량을 차지하게 된다.

    i-node
    : 파일이 생성될 때마다 할당되는 고유 번호. inode에는 파일의 권한, 형태 등 파일에 대한 모든 정보가 들어가 있다. ls -i [파일] 명령어로 inode 값을 확인 할 수 있다.

    inode는 파일의 데이터를 가리키고, 하드링크는 inode를 가리키게 된다. 따라서 우리가 확인할 수 있는 모든 파일들은 하드링크이다. 모든 파일들은 하나 이상의 하드링크를 가지게 되고, 파일에 할당된 단 하나의 하드링크도 존재하지 않을 시 파일이 삭제되었다고 하는 것이다.

    cp 명령어는 원본과는 다른 inode 값을 가리킨다는 점이 하드링크와의 차이점이다. 따라서 하드링크는 파일을 수정 할 시 원본과 복사본에 동일하게 변경내용이 반영이 되지만, cp 명령어 같은 경우에는 한쪽에서 발생한 변경내용이 서로 반영되지는 않는다.


소프트링크

  • ln -s A B
    Windows OS의 바로가기와 동일하다. 새로운 inode 값을 가리키게 되고, 그 inode는 원본 inode를 가리키는 주소값을 가지고 있다. 따라서 원본과는 다른 파일 용량을 가지고 된다. 원본 파일 삭제시 소프트링크가 가리키고 있는 원본 파일의 주소가 사라지게 되므로 의미가 없는 파일이 된다.

    cf) ls -al 명령어로 소프트링크 확인 가능




해당 글은 다음 강의의 내용을 참고한 글임을 밝힙니다. 자세한 내용은 다음 강의에서 확인해볼 수 있습니다. 인프런, 잔재미 코딩, ⌜풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]⌟
profile
블로그 이관했습니다.

0개의 댓글