当文件名包含双引号时如何使用 rsync?

当文件名包含双引号时如何使用 rsync?

我正在尝试将目录 my_dir/ 的内容从 /home 同步到 /backup。此目录包含一个文件,其名称具有双引号在其中,例如“to”。这是我的 rsync 命令:

rsync -Cazh /home/my_dir/ /backup/my_dir/

我收到以下消息:

rsync:mkstemp“/backup/my_dir/.to”to.d93PZr“失败:参数无效(22)

需要注意的是,当同步文件名包含单引号、括号和空格时,rsync 工作正常。那么,为什么双引号会出现问题呢?谢谢您的帮助。

答案1

事实上,目录 /backup/my_dir/ 位于 FAT 格式的 USB 硬盘上。Rsync 开发人员告诉我,是这个文件系统不允许在文件名中使用双引号。将我的 USB 硬盘重新格式化为 ext3 后,rsync 运行顺畅,即使文件名包含双引号也是如此。

答案2

这似乎是 rsync 中的一个错误,你对此无能为力。请随时向 rsync 开发人员报告。

一个解决方案是重命名所有带双引号的文件。无论如何,它们本来就不应该在那里。

答案3

您是否尝试过使用双引号的八进制表示(即 \042)。我不确定 rsync 是否支持它,但值得一试。

相关内容