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 .