rsync 名称中带有冒号的多个文件

rsync 名称中带有冒号的多个文件

rsync将文件名中的冒号解释为表示前面是远程计算机名称的指示。当您尝试 rsync 名称中包含冒号的文件时,rsync 通常会感到困惑,并产生如下错误

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1166) [Receiver=3.0.9]

或者

Unexpected remote arg: 02\:12\:43.481000"
rsync error: syntax or usage error (code 1) at main.c(1232) [sender=3.0.9]

(请注意,我的用例是一堆名称中带有日期的文件)

我如何使用 rsync 选择性地使用通配符发送文件。例如:

rsync -avz my_special_files* othermachine:/other/path/

答案1

从父目录执行:

rsync -avz parent_directory/my_special_files* othermachine:/other/path/

并且它可以工作(至少在带有 rsync 3.09 协议版本 30 的 ubuntu 12.04 上)。

原因是什么?与 rsync 识别主机的逻辑有关。单词前面的正斜杠似乎不被视为主机。奇怪的是,当我使用find,这样所有名称前面都加上“./”时,它仍然不起作用。

关于这类问题有一些讨论,例如这个,但他们没有谈论使用通配符之类的东西。然而,他们确实激励我去尝试最终奏效的方法。

相关内容