편집기를 사용하여 수정한 후 하드 링크가 업데이트되지 않는 이유는 무엇입니까?

편집기를 사용하여 수정한 후 하드 링크가 업데이트되지 않는 이유는 무엇입니까?

저는 Mac OS X를 사용하고 있지만 명령줄에서 사용하고 있습니다. .profile한 파일을 업데이트하면 다른 파일도 업데이트되고 그 반대의 경우도 가능하도록 내 파일에서 내 시스템의 다른 파일로의 링크를 만들고 싶습니다 .

이 기사하드 링크가 나에게 필요한 것이라고 생각하게 만듭니다. 내가 항상 사용하는 명령은 다음과 같습니다.

ln .profile ~/Newpath/.profile

이 접근 방식은 파일이 생성되기 때문에 작동 Newpath하지만 한 파일을 업데이트해도 다른 파일은 자동으로 업데이트되지 않으며 그 반대의 경우도 마찬가지입니다.

ln데스크탑에서 간단한 파일을 사용해 보았는데 링크가 서로 업데이트되었습니다. 어떤 이유로 Mac의 홈 디렉터리에 있는 파일에 대한 링크나 도트 파일을 사용할 수 없는 경험을 해본 사람이 있는지 궁금합니다.

여기서 무슨 일이 일어나는지 아시나요?

답변1

많은 편집자는 임시 파일에 쓰고 결국에는 대상 파일로 이름을 바꿉니다.

이로 인해 하드 링크가 손실됩니다.

답변2

아마도 이러한 파일이 있는 디렉토리가 다른 파일 시스템/파티션에 있을 수 있습니까? 하드 링크는 단일 파티션에만 존재할 수 있습니다.

if test x"$(stat -f'%d' .)" != x"$(stat -f'%d' ~/Newpath)"; then
  echo "Directories are on different partitions"
fi

답변3

방금 Mac에서 테스트했는데 훌륭하게 작동합니다.
하나를 업데이트하면 다른 것도 업데이트됩니다.

그런데, 심볼릭 링크는 하드 링크와 마찬가지로 작동해야 합니다.

답변4

dubiousjim의 의견은 내 문제를 지적했습니다.

내 생각에 git은 파일의 새 복사본을 체크아웃할 때마다 하드 링크를 깨뜨린다고 생각합니다. 편집: 예, 하드 링크가 단일 저장소에 있더라도 그렇게 된다는 것을 방금 확인했습니다.

관련 정보