Respostas:
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 com o que você pretendia ./.htaccess
; se você quiser corresponder a um arquivo apenas na raiz da cópia, inicie o padrão com a /
. Se você deseja apenas a raiz .htaccess
, não pode usar apenas --include='/.htaccess' --exclude='.*'
, porque a regra sem raiz realmente tem precedência aqui, você precisa fazer algo mais complicado:
rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir
Leitura adicional: princípios básicos para filtros rsync .
--include
primeiro, mas o "./" na frente do "./.htaccess" era o que o estava matando.
.htaccess
arquivo, você deverá --include='.*/'
(acho) antes da final --exclude
, veja também aqui