我想从包含以下内容的文件夹进行 rsync索引.php(需要排除),并且许多其他目录也包含 index.php。我创建了一个排除文件并在那里添加了 index.php。但是所有 index.php 文件都消失了。有没有适当的方法可以避免同步唯一的文件?
答案1
rsync 使用相对于根 rsync 文件夹的目录。你应该能够使用类似
rsync -aAX ./ ../target --exclude=/index.php
“ /
”表示根目录。
答案2
过滤--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
,其中排除模式开头的斜杠指的是传输的根,其根源位于/srv/files/
(在源上)。