como fazer o rsync funcionar apenas no arquivo e não no diretório

3

Eu gostaria de espelhar somente arquivos específicos (por exemplo * .jpg), mas o rsync cria diretórios vazios no host de destino que não possuem nenhum arquivo * .jpg neles.

Minha sintaxe é:

rsync -arv  
      --include '*/' 
      --include '*.flv' 
      --exclude '*' 
      host_source/ host_dest/

Eu tento criar um arquivo com todos os caminhos e padrões de arquivos correspondentes * .jpg:

    find source/ -iname *.jpg > myfiles.txt  
/* and I use "sed" to filter the parent path to be OK */

Então, agora corro:

rsyn -ar --files-from=myfiles.txt host_source/ host_dest/

Isso funciona bem; nenhum diretório vazio é criado em "host_dest", mas agora, se houver alguns arquivos em "host_dest" que devem ser excluídos em "host_source", o rsync não os excluirá.

Então, como eu digo ao rsync para "olhar" SOMENTE para o padrão de arquivo e não criar diretórios vazios no host_dest?

Muito obrigado pelas respostas antes de enlouquecer:)

    
por thierryForum 04.02.2013 / 05:55

2 respostas

2

man rsync:

-m, --prune-empty-dirs      prune empty directory chains from file-list
    
por 04.02.2013 / 11:53
0

Tente remover a opção recursiva da linha de comando

rsync -a --files-from = myfiles.txt host_source / host_dest /

    
por 04.02.2013 / 06:15