Inclui include = “*” no rsync copia todos os arquivos ocultos em todos os subdiretórios?

3

Eu quero fazer um backup de um diretório que contém milhares de subdiretórios e caminhos profundos de subpastas. Em muitos desses diretórios, há um grande número de arquivos que começam com . . Eu quero ter certeza de que todos os arquivos . em subdiretórios e subdiretórios e etc. sejam copiados corretamente. É suficiente especificar include="*" ? Isso cobrirá tudo?

rsync -rvh --compress-level=0 --stats --progress --include ".*"  user@vm:/mnt/storage8/backups ~/data/backup_of_backups/
    
por benett 10.07.2018 / 13:24

2 respostas

1

Todos os arquivos são incluídos por padrão, portanto, se você quiser incluir todos os arquivos, não passe nenhuma opção --include ou --exclude .

Se você usa padrões, o rsync não trata especialmente os arquivos de pontos. Se você quisesse pular arquivos de pontos, teria que usar explicitamente --exclude='.*' .

Observe que --include='.*' incluiria apenas arquivos de ponto. Esse é um padrão de shell, em que . significa si mesmo e * significa "qualquer sequência de caracteres", não regex, em que . significa "qualquer caractere" e * "qualquer número do caractere precedente ou grupo". Sem qualquer diretiva de exclusão, você ainda obtém todos os arquivos, portanto, uma diretiva include é inútil, mas se você tivesse algumas diretivas de exclusão, --include='.*' não significaria "incluir todos os arquivos, incluindo arquivos de ponto", isso significaria apenas "incluir arquivos de ponto". ”(E por conta própria, não recorre a diretórios cujo nome não comece com um ponto).

    
por 10.07.2018 / 13:45
0

Sem especificando nenhum padrão de inclusão ou exclusão, rsync copiará arquivos e diretórios ocultos.

    
por 10.07.2018 / 13:44