You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rsync从Mac Sonoma复制到ExFAT TerraMaster DAS时时间戳异常求助

rsync在Mac Sonoma下复制到ExFAT外接硬盘无法保留创建时间的问题

问题根源

ExFAT文件系统本身不支持Mac系统的「创建时间(Birth Time)」元数据字段,仅支持修改时间。Mac本地的APFS/HFS+文件系统有专门字段存储创建时间,但ExFAT的设计以跨平台兼容为核心,没有对应项,所以rsync无法将原始创建时间写入ExFAT磁盘——这是文件系统的固有限制,和rsync版本、sudo权限无关。

两次rsync的现象解释

  • 首次执行rsync -t时,文件是在ExFAT盘上全新创建的,系统会自动将当前时间设为该文件在ExFAT上的创建时间,同时因为首次复制未同步修改时间,所以修改时间也显示为当前;
  • 再次执行rsync -t时,rsync会同步原始文件的修改时间(ExFAT支持该字段),但ExFAT的创建时间是文件首次写入磁盘的时间,无法通过rsync修改,所以仍显示首次复制的时间。

解决方案与补救方法

  1. 文件系统格式替换(彻底解决)
    如果不需要Windows跨平台兼容,将外接盘格式化为APFS格式,这样就能完整保留Mac的所有元数据(包括创建时间),rsync的-a参数可以正常工作。

  2. 无需重复复制的补救(针对已复制文件)
    由于ExFAT本身不支持创建时间,无法真正恢复原始创建时间,但可以通过以下方法将修改时间同步为原始创建时间(仅作替代):

    • 先在本地源目录导出所有文件的创建时间:
      find /本地源路径 -type f -exec stat -f "%N %B" {} \; > ctimelist.txt
      
    • 在外接盘目标目录批量同步时间:
      while read -r src_file ctime; do
        dest_file="/外接盘目标路径/$(basename "$src_file")"
        touch -t "$(date -r "$ctime" +%Y%m%d%H%M.%S)" "$dest_file"
      done < ctimelist.txt
      

    注意:此操作仅修改文件的修改时间为原始创建时间,无法改变ExFAT上的创建时间字段。

  3. 替代工具(适合一次性复制)
    使用Mac自带的ditto命令,它会尽可能模拟保留元数据,在ExFAT上复制时会将原始创建时间写入修改时间字段:

    ditto -V /本地源路径 /外接盘目标路径
    

内容的提问来源于stack exchange,提问作者Marco.28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:07:21