Próbuję skonfigurować rsync, który wyklucza wszystkie .*
pliki oprócz, .htaccess
ale niestety to nie działa:
rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir
Czy można w jakiś sposób wykluczyć ogólne reguły wykluczania?
Obowiązuje pierwsza reguła dopasowania, więc dołącz .htaccess
przed wykluczeniem .*
.
rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir
To kopiuje .htaccess
na każdym poziomie. Nie wiem z czym zamierzałeś ./.htaccess
; jeśli chcesz dopasować plik tylko w katalogu głównym kopii, rozpocznij wzór od /
. Jeśli chcesz tylko rootowania .htaccess
, nie możesz po prostu go użyć --include='/.htaccess' --exclude='.*'
, ponieważ reguła niezrootowana ma tutaj pierwszeństwo, musisz zrobić coś bardziej skomplikowanego:
rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir
Dalsza lektura: podstawowe zasady dotyczące filtrów rsync .
--include
pierwszy, ale „./” przed „./.htaccess” było tym, co go zabijało..htaccess
plik, musisz--include='.*/'
(myślę) przed finałem--exclude
, patrz także tutaj