Я хочу rsync из папки, которая contanins index.php (которая должна быть исключена), и многие другие каталоги содержат index.php тоже. Я создал файл exclude и добавил index.php. но все файлы index.php исчезли. Есть ли подходящий способ избежать единственного файла из синхронизации?
Фильтр --exclude работает следующим образом:
Если шаблон не начинается с косой черты, он совпадает в конце пути в любом месте дерева. --exclude myfile.txt соответствует любому файлу с именем myfile.txt в любом каталоге. --exclude logs/myfile.txt соответствует myfile.txt внутри любого каталога с именем logs. Если шаблон начинается с косой черты, он привязывается к корню переданных файлов. Чтобы определить, какой корень переданных файлов, удалите все после последней косой черты в исходном пути. Например, в следующей команде rsync путь к исходному файлу - /srv/files/something, поэтому корень передачи - /srv/files/.rsync -a /srv/files/something host:/backup/files/
Итак, чтобы исключить исходный файл /srv/files/logs/myfile.txt, вы должны использовать --exclude /logs/myfile.txt, где этот слэш в начале шаблона exclude относится к корню передачи, который коренится в /srv/files/ (на источнике).