rsync问题…文件名

我正在尝试使用以下命令来备份使用Rsync的用户Chrome会话:

rsync -e "ssh -i new.key" -r --verbose -tz --stats --progress --delete \ '/cygdrive/c/Users/jay/AppData/Local/Google/Chrome/User Data/Default/Current Session' \ user@host:"/chrome sessions/" 

除此之外不能正常工作,因为我在服务器上已经存在的会话目录中得到名为chrome的文件。

为什么是这样?

您需要在“chrome会话”中跳过空格:

rsync -e "ssh -i new.key" -r --verbose -tz --stats --progress --delete '/cygdrive/c/Users/jay/AppData/Local/Google/Chrome/User Data/Default/Current Session' user@host:"/chrome\ sessions/"

双引号是由本地shellparsing和剥离的,将这两个单词作为rsync的单个参数保存在一起。 Rsync连接到远程主机,并产生一个新的shell。 这个shell看到两个参数:“chrome”和“sessions”。 如果你有一个带有embedded式转义的带引号的string,那么这个转义就会继续到你的远程主机,并告诉shell忽略这个空间。

试试像这样:

rsync -r –verbose -tz –stats –progress –delete'/ cygdrive / c / Users / jay / AppData / Local / Google / Chrome / User Data / Default / Current Session'-e“ssh -i new .key“user @ host:”/ chrome sessions /“