我正在使用以下 rsync 命令来确定源目录中较新的(或校验和不同的)所有文件,或者目标目录中不存在的所有文件:
rsync -rltDO -hvinuczz /source/ /dest
并-i
了解文件被传输/更新的确切原因。我省略了 dir-times ( -O
),因为目标中有更新的目录,它们将显示在 rsync 生成的输出中。我使用此命令时遇到的问题是:它列出了目标中的新文件(即源中不存在的文件),如下所示:>f+++++++++
。
我的问题是:
(1) 为什么要-i
列出这些内容?我的选项明确指定了我想要将源中较新(或具有不同校验和)的所有内容从源同步到目标。目标中存在但不在源中的文件不属于该类别。
(2)哪些选项可以实现:列出源中在目标中不存在的内容,或者在源中存在且较新(或具有不同的校验和)的内容?
注意rsync 命令描述-i
如下:
-i
,--itemize-changes
请求对每个文件所做的更改(包括属性更改)的简单逐项列表。这与指定--输出格式='%i %n%L'。如果你重复该选项,未更改的文件也会被输出,但前提是接收 rsync 至少是 2.6.7 版本(你可以使用-vv使用旧版本的 rsync,但这也会打开其他详细消息的输出)。
“%i”转义具有 11 个字母长的神秘输出。一般格式类似于字符串云南省, 在哪里是被正在进行的更新类型所取代,X被文件类型替换,其他字母代表修改时可能输出的属性。
取代是如下面所述:
- A<表示文件正在传输到远程主机(已发送)。
- A>表示文件正在传输到本地主机(已接收)。
- ︙
所以>f+++++++++
它告诉我有一个新的文件需要传输——如果我解释文档,它应该在本地端(==源)接收。真的吗?