我正在尝试使用 rsync(在 Linux Mint 上)备份到 msdos 类型的外部 USB 驱动器(如驱动器属性中所示),使用以下命令:
rsync -av ~/Documents/rsynctest/ /media/myname/PC/rsynctest --delete
但是,它正在复制一些自我上次运行此命令以来尚未更改的文件。这是怎么回事?是否有直接的解决方案,而无需重新格式化驱动器?
添加“i”标志会导致以下行的输出:
.f...p..... CBCTest/bin/Debug/CBCTest
答案1
您需要使用以下方法解决 rsync 问题:
--仅尺寸
但如果文件大小完全相同但不同,则可能无法升级。
祝你好运!
答案2
Vfat 文件系统(我猜“type msdos”的意思)不支持文件的用户/组/权限,因此 vfat 文件系统上的每个文件都会显示一些参数的合成值(在安装时设置)。如果这些值与您尝试同步的文件的值不同,rsync
(用-o
/ -g
/调用-p
- 全部包含在 的含义中-a
)将认为某些内容已更改并重新复制文件。
答案3
在你的输出中
.f...p..... CBCTest/bin/Debug/CBCTest
“p”表示它正在更新目标文件的 (p) 权限,因为它认为它们需要这样做。
(它实际上并不是复制文件,因为它已经就位,只是更新权限)。
某些文件系统可能根本无法匹配“正确”的权限。例如,如果您尝试 rsync 到 FAT 文件系统,该系统不会以相同的方式存储权限。在这种情况下,您可能只想关闭权限保留。要么不提供-p/--perms
,或者如果它们通过类似的方式包含在内-a
,请--no-perms
稍后再提供。
或者,也许权限真的被改变了。你必须亲自调查一下。