심볼릭 링크를 생성할 때 언제 절대 경로 이름을 사용해야 합니까?

심볼릭 링크를 생성할 때 언제 절대 경로 이름을 사용해야 합니까?

나는 여기와 여러 책에서 링크와 파일을 이동해도 깨지지 않기 때문에 상대 경로를 사용하여 심볼릭 링크를 만드는 것이 선호된다는 것을 읽었습니다. 항상 상대 경로 심볼릭 링크를 만들어야 하는지 궁금합니다. 예를 들어, /etc/passwd현재 디렉터리에 연결하려면 절대 경로를 사용해야 합니까, 아니면 상대 경로를 사용해야 합니까?

ln -rs /etc/passwd passwd-symlink상대 경로 링크가 생성되지만 이것이 필요합니까?

답변1

이에 대한 명확한 대답은 없을 수 있으며, 많은 경우 심볼릭 링크 대상이 상대적인지 절대적인지는 특별히 중요하지 않습니다.

다음 상황 중 하나가 존재하는 경우 상대 기호 링크를 사용하는 것이 좋습니다. 이러한 상황에서는 링크가 유효하게 유지되기 때문입니다.

  • 대상이 동일한 디렉터리 트리에 있고 전체 디렉터리 트리를 이동할 수 있는 경우
  • 대상이 동일한 파일 시스템에 있고 향후 마운트에서 다른 위치에 마운트되는 경우(복구 라이브 환경, 컨테이너 또는 다른 시스템일 수 있음)

그러나 다음 조건 중 하나라도 충족되면 절대 링크가 더 나을 수 있습니다.

  • ../대상이 올바른 시퀀스 수를 확인할 수 없는 완전히 다른 디렉터리에 있습니다.
  • 현재 디렉토리와는 별개로 매우 특정한 파일을 가리키고 싶습니다(예: /etc의 구성 파일일 수도 있음).
  • 이것이 가리키는 파일이 무엇인지 매우 명확하게 알고 싶다면 실제 링크가 심볼릭 링크를 가리키거나 디렉토리 심볼릭 링크의 대상을 순회하는 미로의 심볼릭 링크로 바뀔 수 있습니다.

관련 정보