extensão de arquivo temporário Rsync

2

Estou com dificuldades para descobrir como o Rsync "escolhe" a extensão do arquivo temporário criado durante a cópia do arquivo, se eu não usar a opção --inplace.

Exemplo: Quero copiar sourceDirectory/myFile.txt em targetDirectory/ com o Rsync.

Enquanto copiar myFile.txt em targetDirectory/ Rsync criará um arquivo chamado .myFile.txt.W4zvLi in targetDirectory/ .

Em seguida, o Rsync renomeará .myFile.txt.W4zvLi para myFile.txt .

A questão é como o Rsync usa a extensão W4zvLi e por que parece mudar toda vez que executo o programa Rsync?

    
por Jean-Paul Goodwin 07.11.2016 / 15:00

2 respostas

3

O rsync usa a função mktemp(3) POSIX para gerar um nome de arquivo temporário exclusivo. Você passa uma string de modelo para a função mktemp e retornará um nome de arquivo com qualquer caractere X no modelo substituído por um caractere aleatório.

Em particular, rsync passa .XXXXXX para mktemp . Se você quiser experimentá-lo a partir da linha de comando, você pode usar o binário mktemp(1) assim:

mktemp -u "/tmp/foo.XXXXXX"
    
por 07.11.2016 / 16:01
-1

man rsync:

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).
    
por 07.11.2016 / 15:03