--link
이들그리고 그리고 의 차이점은 무엇인가요 --reflink=always
?
대안 으로 다음 명령을 사용하고 있는데 사용하는 것이 더 나은 옵션 mv
인지 궁금합니다 .--reflink
command gcp -r --link --archive --verbose "${opts[@]}" "$@"
# delete the sources manually
답변1
--link
cp
복사하는 대신 하드 링크를 생성 합니다 . "복사"가 완료되면 동일한 파일 시스템(하드 링크에 필요)에 있다고 가정하면 파일의 단일 인스턴스가 이를 가리키는 두 개 이상의 디렉터리 항목과 함께 디스크에 존재하게 됩니다. 이것이 원하는 외부 상태입니다.즉여러 디렉토리 항목이 동일한 파일을 가리킨다는 사실이 표시됩니다. 이는 동일한 inode를 가리킵니다. 디렉토리 항목 중 하나를 통해 변경된 내용은 다른 디렉토리 항목을 통해서도 볼 수 있습니다.
--reflink=always
가능하다면 최적화된 사본을 요청하세요. 이는 특히 기록 중 복사 등 다양한 형태를 취할 수 있지만 네트워크 파일 시스템에서 서버측 복제로 구현될 수도 있습니다. 복사가 완료되면 데이터 블록의 단일 복사본이 디스크에 존재하지만 두 개의 파일이 존재하고 각 디렉터리 항목이 다른 파일을 가리키는 상황이 발생할 수 있습니다. 하나의 디렉토리 항목을 통해 변경된 내용은 다른 디렉토리 항목을 통해 표시되지 않습니다. 각 파일은 별도의 수명 주기를 갖습니다(공유 데이터 블록의 부작용 제외).예를 들어디스크 손상은 두 파일 모두에 영향을 미칩니다.
즉, --link
명시적 요청은 동일한 파일을 가리키는 새 디렉토리 항목을 생성하고 후속 변경 사항을 공유합니다. --reflink=always
새 파일 생성을 요청하고, 잠재적인 최적화를 수행하고, 후속 변경 사항을 격리합니다.
mv
대안 으로 운영 체제의 작업 부하 --link
를 --reflink=always
줄여줍니다.