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

나는 실행하고 mv한 파티션에서 다른 파티션 (많은 파일이 포함) 디렉토리를 이동합니다. mv디렉토리의 개별 파일을 하나씩 이동 하는 동안 소스 파티션의 여유 공간 크기는 변경되지 않지만 대상 파티션의 여유 공간 크기는 감소합니다.

소스 파티션과 대상 파티션의 여유 공간 크기 합계가 동일한 방식으로 작동하는 이유는 무엇입니까?



답변

POSIX가 정의한대로 mv 는 소스 파일을 대상 경로에 복제하며 아무 문제가 없으면 소스 파일을 제거해야합니다.

  1. source_file에 기반을 둔 파일 계층은 대상 경로에 기반을 둔 파일 계층으로 복제되어야합니다.

  2. source_file에 뿌리를 둔 파일 계층은 제거되어야한다. 어떤 이유로 든 이것이 실패하면 mv는 표준 오류에 진단 메시지를 작성하고 현재 source_file로 더 이상 아무것도하지 않고 나머지 source_file로갑니다.

동일한 파일 시스템으로 이동하면 파일 시스템의 한 위치에서 다른 위치로 항목 만 이동합니다.

이동 프로세스 중에 오류가 발생해도 소스 파일을 잃지 않도록 보장했습니다.


답변

보수적이며 복사가 성공할 때까지 파일을 삭제하지 않습니다. 이렇게하면 문제가 발생했을 때 쉽게 복구 할 수 있습니다.


답변