Rsync 问题...文件名

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 的文件。

为什么是这样?

答案1

您需要转义“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/"

本地 shell 会解析并删除双引号,将两个单词合并在一起作为 rsync 的单个参数。Rsync 会连接到远程主机并生成一个新 shell。该 shell 会查看参数:"chrome" 和 "sessions"。如果您有一个带内嵌转义符的引号字符串,则转义符在到达远程主机后仍会保留,并告知 shell 忽略空格。

答案2

尝试一下:

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" 用户@主机:"/chrome 会话/"

相关内容