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


13

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

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

답변:


16

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

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

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

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

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


16

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


그러나 디렉토리에는 많은 파일이 있습니다
Tim

7
@Tim : 모든 파일이 대상 볼륨에 복제 될 때까지 소스 파일 제거를 시작하지 않습니다 . 한 번에 하나씩 파일을 이동해야하므로 가장 큰 파일의 공간보다 "추가"공간이 더 이상 사용되지 않도록하려면 루프를 작성해야합니다.
워렌 영

4
MS-Windows에서 이동 한 적이 있으며 이동의 절반 정도가 잘못되면 문제가 발생합니다. 소스와 대상 모두 엉망이며 문제를 해결해야합니다. 저녁 식사 괴짜가 아니라면 둘 다 삭제하고 다시하지 않는 법을 배우십시오.
ctrl-alt-delor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.