Como incluir arquivos excluídos em um rsync

15

Estou tentando configurar um rsync que exclua todos os arquivos .* , exceto .htaccess , mas infelizmente isso não funciona:

rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir

É possível excluir de alguma forma as regras gerais de exclusão?

    
por Rich 11.04.2011 / 01:06

1 resposta

22

A primeira regra de correspondência se aplica, portanto, inclua .htaccess antes de excluir .* .

rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir

Isso copia .htaccess em todos os níveis. Não sei o que você pretendia com ./.htaccess ; Se você quiser corresponder um arquivo somente na raiz da cópia, inicie o padrão com / . Se você quer apenas a raiz .htaccess , não pode usar apenas --include='/.htaccess' --exclude='.*' , porque a regra não enraizada na verdade tem precedência aqui, você precisa fazer algo mais complicado:

rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir

Outras leituras: princípios básicos para filtros de rsync .

    
por 11.04.2011 / 01:19

Tags