cópia do padrão rsync: dotfiles

3

Eu segui o conselho dado na pergunta Filtro Rsync: copiando apenas um padrão para configurar uma linha de comando que eu preciso para fazer backup apenas dos arquivos de ponto .inF*

Ainda com o comando:

rsync -av --include='.inF*' --include='*/' --exclude='*' /0ale/ \
   root@lambda2:/0ale/

Eu obtenho que a estrutura de diretório é espelhada, mas nenhum arquivo de ponto é copiado. O mesmo comando com um padrão de teste

rsync -av --include='test*' --include='*/' --exclude='*' /0ale/ \
    root@lambda2:/0ale/

copia corretamente o arquivo test1.txt , portanto, é um problema apenas com os dotfiles. Alguma dica?

    
por alessandro 15.08.2011 / 09:13

2 respostas

2

Os filtros de inclusão / exclusão em rsync são processados na ordem em que aparecem. Para corresponder um arquivo de pontos em um subdiretório (ou em qualquer diretório diferente do diretório de trabalho atual de rsync ), você precisa colocar sua regra */ include para incluir pastas primeiro e, em seguida, sua correspondência .* para incluir ponto -files.

rsync -av  --include='*/' --include='.inF*' --exclude='*' /0ale/ \
   root@lambda2:/0ale/
    
por 15.08.2011 / 13:27
0

Eu tentei algo semelhante à resposta acima para copiar dotfiles (o padrão era: --include='.**' --exclude='*' ), mas descobri que algumas outras exclusões que eu queria não estavam sendo excluídas.

Se você tiver outras bandeiras --exclude= que deseja passar, use o seguinte padrão:

rsync  -avz --exclude='path/to/exclude1' --exclude='path/to/exclude2' --exclude='.Trash'  /0ale/.[^.]* root@lambda2:/0ale/
    
por 25.06.2014 / 00:14