mv 명령은 존재하지 않는 많은 파일에 사용됩니다. 대상 디스크가 마모됩니까?

mv 명령은 존재하지 않는 많은 파일에 사용됩니다. 대상 디스크가 마모됩니까?

/ramdisk에서 일반 /ssd로 많은 파일(분당 약 10,000개)을 지속적으로 이동하려고 하는데 모든 파일이 거기에 있는 것은 아닙니다.

소스가 존재하지 않아 실패 하면 mv /ramdisk/file55 /ssd/file55대상에 무엇이든 쓰려고 합니까?

대부분의 파일이 /ramdisk에 저장되는 이유는 대상 SSD가 닳을까봐 걱정되어서 여쭤보는 것입니다.

답변1

이 질문에 답하는 유일한 방법은 소스 코드를 살펴보는 것입니다. 구현은 다를 수 있습니다.

특히, mv나는 당신이 다음을 언급하고 있다고 가정합니다.GNU Coreutils.

mv코드의 미묘한 차이를 모두 이해했는지는 모르겠지만 다음과 같은 사실을 알 수 있습니다.

  • 함수 중 src/mv.c하나 do_move(const char *source, const char *dest, const struct cp_options *x)는 입니다 mv. 이 함수는 이라는 다른 함수를 호출합니다 copy.
  • 에서 호출되는 함수는 src/copy.c기본적 으로 호출되는 다른 함수를 둘러싼 래퍼입니다 .copydo_movecopy_internal
  • 함수 상단에서 소스 파일에 copy_internal액세스를 시도합니다 . stat실패하면 아무 것도 하지 않고 종료됩니다.

따라서 다음과 같이 대답하는 것이 안전하다고 생각합니다.

존재하지 않는 파일에 액세스하려고 시도하면 다양한 검사를 통과할 때까지 mv대상에 영향을 미치지 않습니다 .

관련 정보