Як включити файли, виключені в rsync


16

Я намагаюся налаштувати rsync, який виключає всі .*файли, окрім, .htaccessале, на жаль, це не працює:

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

Чи можна якось виключити загальні правила виключення?

Відповіді:


24

Перше правило відповідності застосовується, тому включіть його .htaccessперед виключенням .*.

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

Це копії .htaccessна кожному рівні. Я не знаю, з чим ви задумали ./.htaccess; якщо ви хочете зіставити файл лише з коренем копії, почніть візерунок з а /. Якщо ви хочете лише корінь .htaccess, ви не можете просто скористатися --include='/.htaccess' --exclude='.*', оскільки фактично не вкорінене правило має тут перевагу, вам потрібно зробити щось складніше:

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

Подальше читання: основні принципи для rsync-фільтрів .


@ fred.bear: Цей був справжній друкарський, а бридкий. Дякуємо, що помітили його!
Жиль 'ТАК - перестань бути злим'

Дякую, я спробував поставити --includeперший, але "./" перед "./.htaccess" було те, що його вбивало.
Багатий

1
@Rich зауважимо, що якщо є приховані каталоги, які містять .htaccessфайл, вам доведеться --include='.*/'(я думаю) до фіналу --exclude, дивіться також тут
Tobias Kienzler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.