问题
我使用 macOS 并尝试使用 rsync 同步两个目录 - 一个在我的主目录中,一个在外部 HDD(HFS+)中。
每当我运行 rsync 选项时--delete
,我都会发现它会删除并重新发送一些文件,尽管自上次同步以来没有任何变化。它只涉及带有特殊字符(波兰字符)的文件,这些字符我使用终端重命名(毫伏/厘泊)。
但是,如果我设置相同的文件名但使用 GUI 文件管理器(macOS 中的 Finder),则可以正确跟踪文件。
例子
echo "Hello World" > "witaj świecie.txt"
我已经使用目录中的 命令创建了一个示例文件~/Test/
。
我使用以下命令运行 rsync:
rsync -avPh --delete ~/Test/ /Volumes/Vault/Test
输出:
sending incremental file list
created directory /Volumes/Vault/Test
./
witaj świecie.txt
12 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/2)
sent 150 bytes received 80 bytes 460.00 bytes/sec
total size is 12 speedup is 0.05
然后,我重新运行相同的命令,输出是:
sending incremental file list
deleting witaj świecie.txt
witaj świecie.txt
12 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/2)
sent 147 bytes received 58 bytes 410.00 bytes/sec
total size is 12 speedup is 0.06
每次连续执行都会产生相同的输出。
当我使用 Finder 更改文件名(实际上是通过重写特殊字符)并rsync
再次运行时,输出为:
sending incremental file list
./
sent 99 bytes received 19 bytes 236.00 bytes/sec
total size is 12 speedup is 0.10
什么原因导致了这种行为?如何解决它?
我的环境:
- macOS 12.1
- rsync 3.2.3
locale
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=