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, 使名稱都帶有“./”前綴時,它仍然不起作用。

關於此類問題有一些討論,例如這個,但他們沒有談論使用通配符之類的東西。然而,他們確實激勵我去嘗試最終有效的方法。

相關內容