GNU cp: "--link"와 "--reflink=always"의 차이점은 무엇입니까?

GNU cp: "--link"와 "--reflink=always"의 차이점은 무엇입니까?

--link이들그리고 그리고 의 차이점은 무엇인가요 --reflink=always?

대안 으로 다음 명령을 사용하고 있는데 사용하는 것이 더 나은 옵션 mv인지 궁금합니다 .--reflink

command gcp -r --link --archive --verbose "${opts[@]}" "$@"
# delete the sources manually

답변1

--linkcp복사하는 대신 하드 링크를 생성 합니다 . "복사"가 완료되면 동일한 파일 시스템(하드 링크에 필요)에 있다고 가정하면 파일의 단일 인스턴스가 이를 가리키는 두 개 이상의 디렉터리 항목과 함께 디스크에 존재하게 됩니다. 이것이 원하는 외부 상태입니다.여러 디렉토리 항목이 동일한 파일을 가리킨다는 사실이 표시됩니다. 이는 동일한 inode를 가리킵니다. 디렉토리 항목 중 하나를 통해 변경된 내용은 다른 디렉토리 항목을 통해서도 볼 수 있습니다.

--reflink=always가능하다면 최적화된 사본을 요청하세요. 이는 특히 기록 중 복사 등 다양한 형태를 취할 수 있지만 네트워크 파일 시스템에서 서버측 복제로 구현될 수도 있습니다. 복사가 완료되면 데이터 블록의 단일 복사본이 디스크에 존재하지만 두 개의 파일이 존재하고 각 디렉터리 항목이 다른 파일을 가리키는 상황이 발생할 수 있습니다. 하나의 디렉토리 항목을 통해 변경된 내용은 다른 디렉토리 항목을 통해 표시되지 않습니다. 각 파일은 별도의 수명 주기를 갖습니다(공유 데이터 블록의 부작용 제외).예를 들어디스크 손상은 두 파일 모두에 영향을 미칩니다.

즉, --link명시적 요청은 동일한 파일을 가리키는 새 디렉토리 항목을 생성하고 후속 변경 사항을 공유합니다. --reflink=always새 파일 생성을 요청하고, 잠재적인 최적화를 수행하고, 후속 변경 사항을 격리합니다.

mv대안 으로 운영 체제의 작업 부하 --link--reflink=always줄여줍니다.

관련 정보