"mv" 중에 소스 파티션의 여유 공간이 변경되지 않는 이유는 무엇입니까?

"mv" 중에 소스 파티션의 여유 공간이 변경되지 않는 이유는 무엇입니까?

mv한 파티션에서 다른 파티션으로 디렉터리(여러 파일 포함)를 이동하는 프로그램을 실행하고 있습니다 . mv디렉터리의 개별 파일을 하나씩 이동하는 동안 원본 파티션의 여유 공간 크기는 변경되지 않은 반면 대상 파티션의 여유 공간 크기는 감소하는 것을 확인했습니다.

원본 및 대상 파티션의 여유 공간 크기 합계가 동일하게 유지되는 대신 왜 이렇게 작동합니까?

답변1

POSIX가 정의한 대로,MV소스 파일이 대상 경로에 복사되며, 문제가 없으면 소스 파일이 삭제됩니다.

  1. source_file을 루트로 하는 파일 계층 구조를 대상 경로를 루트로 하는 파일 계층 구조로 복사해야 합니다.

  2. source_file을 루트로 하는 파일 계층 구조를 삭제해야 합니다. 어떤 이유로든 실패하면 mv는 표준 오류에 진단 메시지를 쓰고 현재 source_file에 대해 더 이상 작업을 수행하지 않으며 나머지 source_file을 계속 처리합니다.

동일한 파일 시스템에서 이동하는 경우 파일 시스템의 한 위치에서 다른 위치로 항목을 이동하면 됩니다.

이동 중에 문제가 발생하더라도 소스 파일이 손실되지 않도록 보장합니다.

답변2

이는 보수적이며 복사가 성공할 때까지 파일을 삭제하지 않습니다. 이렇게 하면 문제가 발생한 경우 복구하기가 더 쉬워집니다.

관련 정보