Usando o Rsync inclua e exclua opções para incluir o diretório e o subdiretório, mas exclua os arquivos no subdiretório

2

Eu estou querendo saber se meu cenário realmente pode ser tratado com o rsync. Rsync funcionando bem entre meu local e meu controle remoto.

htdocs/    
  folderswithfilesIneed/
    somefilesandfolders.jpg
    afolder/
      somefiles.png
  version/
    photofolder/
      photowithstupidname.jpg
      ...
   anotherfolderwithstupidname/
      photowithstupidname.jpg
      ...
   ...

Eu quero sincronizar todos esses arquivos e pastas, mas excluir todos os arquivos em 'photofolder' e 'anotherfolderwithstupidname'

Alguém tem uma ideia para fazer isso de uma vez?

EDIT: Para ser mais claro, há muitas pastas na "versão", por isso não posso excluir o conteúdo deles, um por um.

    
por elkoo 15.06.2016 / 16:03

1 resposta

2

Claro, isso é simples de se fazer com regras de exclusão. Para excluir um diretório e todo o seu conteúdo, apenas exclua o diretório em si, ele nem será percorrido. Para incluir um diretório somedir , mas não seu conteúdo, ou seja, transferir um diretório vazio, exclua somedir/* . Quando uma cláusula exclude começa com um / , é um caminho da raiz do diretório que você está sincronizando.

rsync -a --exclude='/version/photofolder/*' --exclude='anotherfolderwithstupidname/*' htdocs/ elsewhere/

Se você quiser incluir todos os subdiretórios de …/version , mas não os arquivos que não são de diretório em …/version e não o conteúdo dos subdiretórios:

rsync -a --include='/version/*/' --exclude='/version/*' htdocs/ elsewhere/

Se você quiser incluir todos os subdiretórios de …/version e seus conteúdos, mas não os arquivos que não são de diretório em …/version :

rsync -a --include='/version/*/' --include='/version/*/*' --exclude='/version/*' htdocs/ elsewhere/
    
por 16.06.2016 / 09:37

Tags