我有一个目录,我定期通过 rsync 同步到该目录rsync -rva
。今天我发现,对于我拥有的许多文件,例如path/to/S00041.jpg
,我还有一个名称path/to/._S00041.jpg
位于 rsync 目的地的空文件。我想它们是由谁创造的,rsync
但我不能确定。所有这些文件都与其相应的原始文件具有相同的时间戳,因此我不知道它们何时出现。
源目录和目标目录均位于 Mac OS 上。如果这有任何帮助,我会从不同的位置和计算机同步到该目录(但显然目录结构始终相同)。
我很好奇这是否是由 rsync 完成的以及为什么。还有一种通过 rsync 自动“修复”它的方法吗?
答案1
在 MacOS 上,每个文件的“资源叉”中可以存储附加信息。在本机 MacOS 文件系统上,此附加信息(透明地)存储为文件本身的一部分。但是,当文件复制到非本机文件系统时,资源叉必须单独存储。这些是._*
文件。较新的应用程序倾向于创建资源文件而不是资源分支,因此导出此类数据时,所有内容都保存在单个文件中。
当它们的长度为零时,您可以安全地删除它们:
find /path -name '._*' -type f -size 0 -delete
尽管您可以选择跳过rsync
它们,但您不能有条件地跳过它们,即仅当它们的长度为零时。
参考: