OSX에서 작동하는 하드 링크를 어떻게 만드나요?


8

좋아,이게 내 머리를 두드리고있다. OS X에서 하드 링크를 만들려면 터미널 창에서 이것을 입력하면됩니다.

ln a.txt b.txt

...에서 a.txt로 하드 링크를 만들어야합니다 b.txt. 간단하고 똑바로.

그 문장을 실행하면 Finder에서 b.txt바로 옆에 나타납니다 a.txt. 그러나 a.txtTextEdit을 사용하여 편집 한 후에도 b.txt여전히 원본 데이터가 있습니다! 다시 말해, 링크가 아닌 복사를 수행 한 것처럼 보입니다.

나에게 의미가 없습니다! 그래서 누군가 내가 여기서 뭘 잘못하고 있는지 말해 줄 수 있습니까?


어떻게 편집합니까?
user151019

TextEdit에서 파일을 열고 텍스트를 추가하십시오. 방금 반복해서 블록을 잘라 복사했습니다. Finder에서 'A.txt'는 이제 'b.txt'와 크기가 다르기 때문에 실제로 디스크에서 두 개의 서로 다른 (데이터) 파일을 가리 킵니다.
Mark A. Donohoe 2016 년

궁금한. 방금 vi를 사용하여 파일을 편집하고 링크가 지속되었습니다. TextEdit을 사용하면 관찰하면 깨집니다.
borrible 2016 년

2
가정이 잘못되었다는 점을 고려하여 질문을 편집하십시오.
Daniel Beck

그 대답은 하드 링크가 실제로 작동하고 있음을 분명히 보여줍니다. 제목은 달리 제안합니다. 하드 링크를 제거하는 것은 OS X 응용 프로그램의 파일 교체 동작 일 뿐이며 완전히 다른 문제입니다.
Daniel Beck

답변:


14

이 동작의 이유는 다소 간단하며 대부분의 Mac OS X 응용 프로그램에서 파일이 저장되는 방식과 관련이 있습니다.

파일 사본이 임시 준비 영역에 기록 된 다음 원본 파일을 대체하기 위해 이동됩니다.

이것은 자연스럽게 하드 링크를 끊습니다.


예 ... Cocoa의 문서 기반 접근 방식을 사용하는 OS X 앱인 것 같습니다. 정말 냄새가나요! 대신 소프트 링크 (별칭)를 사용하여 벗어날 수 있는지 확인할 것입니다. 시스템이 사용하는 DefaultKeyBinding.dict를 편집하고 있기 때문에 확실하지 않습니다. 잘만되면 그것은 링크를 따라갈 정도로 똑똑하다. 우리는 볼 것이다!
Mark A. Donohoe 2016 년

그렇습니다. 그렇기 때문에 OS X GUI 편집기에서 Unix-y 시스템 구성 파일을 편집하는 것이 어려워서 훨씬 쉽게 수행 vi할 수 있습니다. 파일에 대한 쓰기 권한을 설정하는 것만으로는 충분하지 않으며 폴더도 필요합니다!
Daniel Beck

BTW, 소프트 링크가 작동하지 않으므로 필요한 모든 장소에 저장 한 후 파일 사본 스크립팅으로 돌아갑니다. 스톡스!
Mark A. Donohoe 2016 년

@MarqueIV : 심볼릭 링크가 작동 할 수 있습니다.
Williham Totland

그것이 제가 의미 한 바입니다. 용어가 잘못되었습니다. 특히 OS X의 키 바인딩을위한 것입니다. 실제 파일이 특정 위치에있을 것으로 예상하고 심볼릭 링크와 함께 작동하지 않습니다. 그러나 편집기가 Cocoa 문서 기반이기 때문에 하드 링크와 함께 작동하지만 링크를 끊지 않고 파일을 편집 할 수 없으므로 수동으로 복사 (또는 재설정) 해야하는 것처럼 보입니다. 문서를 편집 한 후 하드 링크 위로 이동). 최적은 아니지만 빠른 스크립트로는 고칠 수 없습니다.
Mark A. Donohoe

3

이 표시되면 수퍼 유저의이 항목을 참조하십시오. 이는 TextEdit의 기능입니다. 따라서 하드 링크를 만드는 일반적인 방법은 맞지만 TextEdit은이를 깨뜨리는 방식으로 작동합니다. (링크는 새 파일을 만든 다음 편집 후 이전 파일 위로 이동한다고 말합니다.)


네 .. 당신이 이것을 올렸을 때 바로 SU에서 봤어요 TextEdit만이 아닙니다. 모든 문서 기반 앱인 것 같습니다. 이 문제는 문서 기반 도구를 사용하여 하드 링크 된 파일을 편집 할 수 없기 때문에 발생합니다.
Mark A. Donohoe 2016 년

TextEdit뿐만 아니라 대부분의 문서 아키텍처를 사용하는 모든 Cocoa 기반 응용 프로그램입니다.
Mark A. Donohoe 2016 년

2

emacs는 기본적으로 (모든 유닉스에서)이 (놀라운!) 동작을 나타내며, 원인이 약간 다르다고 생각했습니다 (매우 낮은 디스크 공간 상황에서 수행하는 것이 "안전한"것입니다). 그러나 여러 가지 방법으로 구성 할 수 있습니다.

make-backup-files(사용 C-h v make-backup-files) 및 관련 설명서를 참조하십시오.

  • backup-by-coping
  • backup-by-coping-when-linked
  • backup-by-coping-when-mismatch
  • backup-by-coping-when-privileged-mismatch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.