rsync quer copiar arquivos que já existem no diretório de destino

3

Eu estou tentando o seguinte comando usando o rsync para copiar apenas arquivos que

  • são novos
  • tem um tamanho diferente
rsync -niav --size-only   /home/me/source/Electronica  /media/externalDrive/dest/Electronica

No entanto, essa execução a seco resulta na seguinte saída:

>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Large.jpg
>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Small.jpg
>f+++++++++ Electronica/music/Folder.jpg

que interpreto para significar que esses arquivos são copiados. Mas eles têm o mesmo tamanho! (Os tempos e as bandeiras são diferentes, no entanto). Além disso, o rsync refere-se a um disco rígido externo (com um formato diferente).

Eu também tentei os seguintes comandos:

rsync -niav --size-only --ignore-times  /home/me/source  /media/else
rsync -niav --size-only --ignore-existing /home/me/source  /media/else

Mas, ainda assim, esses arquivos são mostrados da mesma maneira, o que significa que eles teriam copiado. O que mais eu posso tentar?

E o que há de errado com a descrição da página principal?

--size-only     skip files that match in size
    
por Alex 05.06.2016 / 18:37

1 resposta

7

Você caiu na "armadilha de barra final" de rsync :
Se o caminho de origem não terminar com uma barra, rsync copiará o diretório de origem . Se você pretende copiar o conteúdo do diretório fonte, ele precisa terminar com uma barra.

Vamos ver um exemplo, supondo que você queira copiar um arquivo em /home/me/source/Electronica/music/Folder.jpg :

rsync -a /home/me/source/Electronica  /media/externalDrive/dest/Electronica

copiará o diretório Electronica da origem para o destino, então criará /media/externalDrive/dest/Electronica/Electronica/music/ e colocará Folder.jpg .

rsync -a /home/me/source/Electronica/  /media/externalDrive/dest/Electronica

copiará o conteúdo do diretório Electronica , então ele replicará o diretório music em /media/externalDrive/dest/Electronica/ (se não existir) e Folder.jpg terminará em /media/externalDrive/dest/Electronica/music/Folder.jpg .

Para tornar as coisas mais confusas, isso não importa se o caminho destino terminar com uma barra.

Apenas crie o hábito de terminar todos os rsync caminhos com uma barra, então você estará a salvo de quaisquer surpresas desagradáveis.

    
por 05.06.2016 / 18:59

Tags