旧的rsync和文件名中的空格

Wel*_*lls 5 linux macos bash rsync

源目录的确定如下:

SHOW=${PWD##*/}
SRC=wells@server.com:"/mnt/bigfish/video/TV/${SHOW}/"
Run Code Online (Sandbox Code Playgroud)

所以它出现了类似于:

wells@server.com:/mnt/bigfish/video/TV/The Name Of the Show With Spaces/
Run Code Online (Sandbox Code Playgroud)

然后尝试像这样运行rsync:

rsync -avz -e ssh "${SRC}" .
Run Code Online (Sandbox Code Playgroud)

但它告诉我""/ mnt/bigfish/video/TV /"不是目录","/ mnt/bigfish/video/TV/Name"不是目录等,但是有很多以空格分隔的单词在源目录的名称中.

我怎样才能纠正这个令人讨厌的恼人问题?

更新我在OS 10.6上运行它,我最终用转义空格替换空格,如下所示:

SRC=wells@kittenfactory.com:"/mnt/bigfish/video/TV/${SHOW// /\ }/"
Run Code Online (Sandbox Code Playgroud)

msw*_*msw 6

rsync手册:

-s, - protect-args
此选项将所有文件名和大多数选项发送到远程rsync,而不允许远程shell解释它们.这意味着空格不会在名称中拆分,并且不会翻译任何非通配符特殊字符(例如〜,$,;,&等).通过rsync在远程主机上扩展通配符(而不是执行它的shell).

  • 你不是骗我的吗? (3认同)
  • 再多说他了 (3认同)
  • @wells:那么你可能应该得到一个比苹果决定向你提供的六年前版本更新的版本:http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/10.4/man1 /rsync.1.html?useVersion=10.4 (2认同)