하드 링크를 다른 디스크로 이동하는 방법

하드 링크를 다른 디스크로 이동하는 방법

디스크에 파일이 있고 이에 대한 하드 링크를 생성하면 동일한 데이터에 대한 두 개의 참조가 있습니다. 한 링크가 제거되더라도 해당 링크는 데이터를 직접 가리키므로 다른 링크에는 영향을 미치지 않습니다.

ABC 파일을 가리키는 두 개의 링크(A와 B)가 있고 링크 A를 다른 디스크로 이동하면 두 개의 데이터 복사본이 있게 됩니다. 링크 A는 새 디스크의 데이터를 가리키고, 링크 B는 이전 디스크의 데이터를 가리킵니다.

링크 A와 B를 새 디스크로 이동하려는 경우 새 디스크에 두 개의 데이터 복사본을 남기지 않고 어떻게 이를 수행할 수 있습니까?

답변1

rsync하드 링크를 복사하는 기능. 옵션을 확인하세요 -H:

-H, --hard-links            preserve hard links

답변2

설명하는 내용은 실제로 디스크의 데이터에 대한 세 가지 포인터입니다.

  • 알파벳
  • 두번째

새 파일 시스템을 사용하는 경우 mv A실제로 새 파일 시스템에 데이터 복사본이 생성됩니다.

새 파일 시스템으로 이동하면 mv B새 파일 시스템에 명명된 데이터의 또 다른 복사본이 생성됩니다. B그러나 ABC는 원래 파일 시스템에 남아 있습니다.

새 파일 시스템에 원본 파일과 링크를 복사하려면 어떻게 해야 합니까? (source/ 및 new-file-system/을 올바른 경로로 바꾸십시오):

  1. cp source/ABC new-file-system/ABC
  2. ln new-file-system/ABC A
  3. ln new-file-system/ABC B
  4. rm source/ABC source/A source/B

그러면 새 파일 시스템에 데이터가 복사/생성되고 새 파일 시스템에 하드 링크 A와 B가 생성된 다음 이전 데이터와 하드 링크가 삭제됩니다.

데이터 손실을 방지하려면 명령을 완료하기 전에 모든 구문을 다시 확인하십시오.

관련 정보