인프런 커뮤니티 질문&답변

hihiwwg님의 프로필 이미지
hihiwwg

작성한 질문수

리눅스 쉘 스크립트 마스터

심볼릭링크와 하드링크

하드 링크, 심볼릭 링크

작성

·

503

1

안녕하세요. 강의 잘 보고 있습니다. 강의 시청 중 궁금한 점이 몇가지 있습니다.

  1. 하드 링크는 파일 복사라고 생각하면 되나요..?

    1. 그렇다면 cp 명령어가 있는데 하드링크를 사용하는 이유는 무엇인가요?

  2. 심볼릭 링크 생성시 권한이 rwx가 모두 생기는데.. 바로가기 폴더라고하면 원본 폴더의 권한을 따라가야하는거 아닐까요..?

  3. 만약 10바이트를 가진 A라는 파일을 하드링크하여 B라는 파일을 생성하면 총 20바이트의 사이즈를 차지할 것이라고 생각했는데 맞을까요?

  4. 3의 예시에서 B를 하드링크가 아닌 심볼릭링크로 생성하게 되면 노출되는 사이즈는 A,B 모두 10바이트로 표현은 되지만 실제 사이즈는 10바이트만 차지하는게 맞을까요?? (링크만 걸어놓은거기때문에)

답변 부탁드립니다. 감사합니다!

답변 2

2

안녕하세요! 답변드리겠습니다.

  1. 하드 링크는 파일의 내용 자체를 복사하는 것이 아니라, 파일 시스템에서 해당 파일의 inode 번호를 다른 이름으로 만들어주는 것입니다. 즉, 하드 링크를 사용하면 기존 파일과 같은 내용을 가진 새로운 파일이 생성되는 것이 아니라, 같은 파일의 inode 번호를 공유하는 새로운 파일이 생성되는 것입니다.

  2. cp 명령어는 파일을 복사하는 명령어이기 때문에, 기존 파일과 같은 내용을 가진 새로운 파일을 생성하는 것입니다. 하드 링크는 같은 파일을 다른 이름으로 참조하는 것이기 때문에, 파일의 내용을 복사하지 않고도 새로운 파일을 생성할 수 있어서 디스크 공간을 절약할 수 있습니다. 또한, 기존 파일의 수정이 새로운 파일에도 반영되는 장점이 있습니다.

  3. 심볼릭 링크는 원본 파일이나 폴더를 가리키는 링크이기 때문에, 해당 파일이나 폴더에 대한 권한을 따라갑니다. 예를 들어, 원본 파일이나 폴더의 소유자나 그룹 등의 권한이 변경된다면, 심볼릭 링크도 같이 변경됩니다.

  4. 하드 링크는 같은 파일의 inode 번호를 공유하기 때문에, 크기가 10바이트인 파일을 하드 링크로 복사하게 되면 사이즈는 10바이트가 됩니다. 즉, 디스크 공간을 추가로 차지하지 않습니다.

  5. 심볼릭 링크의 경우에도, 실제로는 원본 파일을 가리키기 때문에 링크 자체의 크기는 매우 작습니다. 링크 파일의 사이즈는 원본 파일의 경로를 저장하는 것뿐이기 때문에, 크기가 매우 작습니다. 따라서, 크기가 10바이트인 원본 파일을 10바이트로 표현하는 심볼릭 링크 파일이 생성됩니다.

0

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요. hihiwwg님!

질문하신 내용에 대하여 아래와 같이 1026999님이 정성으로 작성하신 답변 글을 참조하시면 될 것 같습니다.

즐거운 하루 되세요 ^^.

hihiwwg님의 프로필 이미지
hihiwwg

작성한 질문수

질문하기