Não é possível entender bem o Rsync com padrões de inclusão e exclusão

2

Primeiro de tudo, eu realmente leio muito sobre esse tópico (incluindo Filtro Rsync: copiando apenas um padrão ), mas eu ainda não entendi, ou eu tenho um problema com a minha instalação ...

Minha estrutura "de" é algo assim:

Windows
Users
  User1
    Documents
      doc1.txt
      doc2.txt
    AppData
    Downloads
  User2
    Documents
      doc3.txt
      doc4.txt
    AppData
    Downloads

Eu quero fazer backup de todas as pastas e subpastas de Documentos de todos os usuários, mas não das estruturas AppData e Downloads.

No destino que eu quero:

Users
 User1
  Documents
   doc1.txt
   doc2.txt
 User2
  Documents
   doc3.txt
   doc4.txt

Eu tentei muitos padrões, mas nenhum está funcionando bem. Vamos começar com este:

rsync -av --include="*/" --exclude="*/AppData" --exclude="*/Downloads" /source/Users /destination

O que devo fazer para excluir as pastas e subpastas AppData e Downloads de cada usuário?

Obrigado

Há outro tópico discutindo quase a mesma coisa (se eu entendi bem): rsync com caminhos absolutos e excluindo subcaminhos

Adaptei a resposta à minha situação, mas o AppData e os Downloads ainda estão presentes no caminho de destino.

rsync -av --no-p  --include="*/" --include="*/Documents/**" --exclude="** /source/Users /destination
    
por huotg01 16.02.2015 / 17:48

1 resposta

2

Em muitos shell * , não inclua o símbolo / (em vez de . à frente) (consulte man 7 glob e globstar | dotglob opções em shopt ) , portanto, se você quiser excluir AppData e Downloads , deverá fornecer o caminho completo de source ( --exclude="*/*/AppData" --exclude="*/*/Downloads" ) ou apenas permanecer apenas como nome ( --exclude="AppData" --exclude="Downloads" ) se não importa em qual nível os diretórios estão situados.

rsync -av --exclude="AppData" --exclude="Downloads" /source/Users /destination
    
por 16.02.2015 / 22:35

Tags