• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

리눅스 링크 관련 질문

23.08.30 23:37 작성 조회수 188

0

먼저 질문이 반복되고 꼬리를 무는점이 있는점 죄송합니다.

제가 이해력이 부족해서 양해 부탁 드립니다.

 

  1. 1.png

    ai답변에서

    링크에 따라 파일을 보는 방법은 링크된 파일의 속성에 따라 다르게 볼 수 있습니다. 예를 들어, vi로 열린 소프트링크는 연결된 원본 파일을 편집할 수 있고, view로 열린 소프트링크는 파일을 읽기 전용으로 보여줍니다.

    라고 하셔셔 해봤는데요 이런거 또한 하드링크로도 가능하지 않나요? 둘이 차이가 있나요?

2.2.png

하드링크도 이렇게 버전별로 가르킬수 있지 않나요? 그럼에도 소프트 링크를 쓰는 이유가 뭔가요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요. sweetstar100님

한 inode를 참조하는 하드링크는 실제로는 동일한 파일입니다. 원본과 복사본의 개념이 없고, 말 그대로 같은 파일이 복수의 위치에 있게 되는 셈입니다. 그래서 p 라는 파일을 python2의 하드링크로 만들면 python2 대신 p라는 파일로 파이썬2를 실행할 수 있죠. 이름만 다르지 같은 파일이니까요.

그런데 p라는 파일을 지우고 p라는 파일을 python3의 하드링크로 만들었다 하죠. 이제 p는 python3와 같은 파일입니다. p를 실행하면 파이썬3를 실행하게 됩니다.

이 예제에서 p라는 파일로 버전이 다른 파이썬 실행 파일을 가리키게 했다고 할 수도 있습니다. 하드링크를 어디에 걸었느냐에 따라 파이썬2가 실행되도록 할 수도 있고, 파이썬3이 실행되도록 할 수도 있으니까요. 하지만 좀 더 정확히 말하자면 python2와 동일한 파일을 p로 만들거냐, 아니면 python3와 동일한 파일을 p로 만들거냐를 결정하신 것이죠.

하드링크와 소프트링크가 서로 장단점이 있습니다. 위의 예제에서 p라는 실행파일이 python2를 가리키거나, python3를 가리키도록 설정하는 것은 소프트링크가 더 적절한 것 같습니다. 소프트링크는 그 파일이 어떤 파일을 가리키고 있는지 명확히 눈에 보입니다. 하지만 하드링크는 그 파일이 실제 어떤 파일인지 눈으로 확인하기가 어렵거든요.

극단적으로 된다 안된다 보다는 상황에 따라 적절한 방법을 사용하시면 됩니다. 일반적인 경우에는 소프트링크를 많이 사용합니다.

답변이 도움되셨길 바라겠습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.01

안녕하세요, 인프런 AI 인턴이에요.

링크에 따라 파일을 보는 방법은 파일의 속성에 따라 달라질 수 있습니다. 하드링크와 소프트링크는 링크의 구조와 동작 방식에서 차이가 있습니다.

  1. 하드링크는 원본 파일의 inode 번호를 참조하여 파일을 가리키는 방식이고, 소프트링크는 원본 파일의 경로를 가리키는 방식입니다. 하드링크는 원본 파일과 링크된 파일이 서로 독립적으로 존재합니다. 따라서 원본 파일이 삭제되더라도 링크 파일은 여전히 사용 가능합니다. 반면, 소프트링크는 원본 파일이 삭제될 경우 링크도 무효화됩니다.

  2. 하드링크는 버전 별로 가르킬 수 있지 않습니다. 하드링크는 원본 파일과 동일한 내용을 가진 복사본입니다. 따라서 버전 관리가 필요한 경우에는 소프트링크를 사용하는 것이 일반적입니다.

소프트링크는 파일이 위치하는 경로를 가리키기 때문에 다른 폴더나 디렉토리에 파일을 연결하는 것이 가능하며, 파일이 삭제되었을 때에도 링크만 무효화됩니다. 따라서 파일의 위치가 변경되거나 버전 관리가 필요한 경우 소프트링크를 사용하는 것이 유용합니다.

링크에 따른 파일의 속성과 차이점을 고려하여 하드링크와 소프트링크를 선택하시면 되겠습니다. 추가로 궁금한 점이 있으시면 댓글로 알려주세요. 감사합니다.