【问题标题】:rsync get from mac to linux: colon replacementrsync 从 mac 到 linux:冒号替换
【发布时间】:2015-03-09 16:47:44
【问题描述】:

我正在 linux 上备份以从远程苹果 mac rsync 数据以保存在本地。

linux/mac 使用“/”或“:”来定义路径层次, 因此,如果 mac 文件名包含“/”,则 rsync 会将“/”替换为“:”以确保安全。

但是,以这种方式将此备份共享/联网回mac会导致麻烦。

有没有办法让 rsync 使用另一个字符,即“_”?

我可以重命名我的文件使用

find /path/to/basedir/* -iname "*:*"  | tac |  sed 's/\(.*\):\(.*\)$/mv "&" "\1_\2"/' | sh

但这打破了 rsync 增量魔法。

谢谢!

【问题讨论】:

    标签: linux macos bash rsync


    【解决方案1】:

    不是 rsync 做翻译;它由内核和文件系统 API 完成(参见 this previous questionthe linked USENIX paper)。这个棘手的字符在 MacOS-heritage API 中显示为斜线,在 unix-heritage API 中显示为冒号; rsync 使用 unix-heritage API,所以它看到一个冒号。

    最好的解决方案不是尝试以不同的方式翻译字符,而是找出您正在使用的共享/网络出了什么问题,并找出它没有在做什么的原因适当的翻译。

    【讨论】:

    • 谢谢,好方法。事实证明,我可以通过重新检查相同版本的 rsync 并升级 netatalk 来解决问题。米
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2017-08-28
    相关资源
    最近更新 更多