강의

멘토링

로드맵

Inflearn brand logo image

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

꿀렁꿀렁님의 프로필 이미지
꿀렁꿀렁

작성한 질문수

리눅스 시스템 프로그래밍 - 이론과 실습

하드링크와 소프트링크 - 라이브 프로그래밍

하드링크 및 소프트링크 관련 질문드립니다.

작성

·

152

1

안녕하세요.

원본파일 hello 와 하드링크 파일인 hard 그리고 소프트링크 파일인 soft 가 존재하는 상황에서

원본파일인 hello 파일을 삭제했다고 가정합니다.

여기서 의문점이 하나 생겼는데, hello 가 지워졌다고 하더라도, hard 에 의해서 원본 데이터는 디스크상에 보존이 되고 soft 의 inode 값은 별도로 관리가 되는데,

이런 경우 원본파일이 삭제되더라고 soft 파일은 디스크상의 파일을 가리켜야 하는게 맞지 않는건가요~?

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

답변 1

0

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

소프트링크 파일은 대상 파일의 inode를 가리키고 있는 것이 아니라 대상 파일의 경로를 저장하고 있습니다. 따라서 soft 파일이 "hello"를 가리키고 있었는지, "hard"를 가리키고 있었는지에 따라 다른 상황이 연출됩니다.

soft가 "hello"를 가리키고 있는 상태에서 "hello"를 삭제하면 soft 파일은 존재하지 않는 파일을 가리키고 있는 상태가 됩니다. 이 경우 "hard" 파일은 그대로 남아있으므로 "hard"의 내용은 디스크에 그대로 저장되어 있습니다.

soft가 "hard"를 가리키고 있는 상태에서 "hello"를 삭제하면 soft는 그대로 "hard"를 가리키고 있는 정상 소프트링크 파일로 남아있습니다(변화가 없죠). 역시 "hard"파일이 그대로 남아있기 때문에 "hard"의 내용은 디스크에 그대로 저장되어 있습니다.

아마도 소프트링크가 대상 파일의 inode를 가리키고 있다고 잘못이해하신 부분 때문에 생긴 궁금증이 아닐까 싶네요. 추가 질문 있으시면 게시판에 남겨주세요~ :)

꿀렁꿀렁님의 프로필 이미지
꿀렁꿀렁

작성한 질문수

질문하기