Rsync 임시 파일 확장자

Rsync 임시 파일 확장자

--inplace 옵션을 사용하지 않는 경우 파일을 복사할 때 Rsync가 생성하는 임시 파일의 확장자를 어떻게 "선택"하는지 알아내는 데 문제가 있습니다.

예: Rsync를 사용하여 복사하고 싶습니다 sourceDirectory/myFile.txt.targetDirectory/

Rsync myFile.txt에 복사 targetDirectory/하면 ..myFile.txt.W4zvLitargetDirectory/

그러면 Rsync .myFile.txt.W4zvLi의 이름이 myFile.txt.

문제는 Rsync가 이 W4zvLi확장을 사용하는 이유와 Rsync 프로그램이 실행될 때마다 변경되는 것처럼 보이는 이유는 무엇입니까?

답변1

rsync는 mktemp(3)POSIX 함수를 사용하여 고유한 임시 파일 이름을 생성합니다. 이 함수에 템플릿 문자열을 전달하면 템플릿의 모든 문자가 임의의 문자로 대체된 mktemp파일 이름이 반환됩니다 .X

특히, 명령줄에서 시도하려면 다음과 같이 바이너리를 사용할 rsync.XXXXXX있습니다 .mktempmktemp(1)

mktemp -u "/tmp/foo.XXXXXX"

답변2

남성 동기화:

Beginning with rsync 3.1.1, the  temp-file  names  inside
              the specified DIR will not be prefixed with an extra dot (though
              they will still have a random suffix added).

관련 정보