重复:在目录名中使用空格进行还原



我正试图使用双面包装脚本(duplicity restore.sh(还原文件,内容如下:

#!/bin/bash
# Export some ENV variables so you don't have to type anything
export AWS_ACCESS_KEY_ID="AWS_KEY"
export AWS_SECRET_ACCESS_KEY="AWS_Secret_key"
export PASSPHRASE="######"
# Your GPG key
GPG_KEY=######
# The destination
DEST="s3://s3.amazonaws.com/<path-to-bucket>"
if [ $# -lt 3 ]; then echo "Usage $0 <date> <file> <restore-to>"; exit; fi
duplicity 
--encrypt-key=${GPG_KEY} 
--sign-key=${GPG_KEY} 
--file-to-restore $2 
--restore-time $1 
${DEST} $3
# Reset the ENV variables. Don't need them sitting around
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export PASSPHRASE=

我很难恢复存储在名称中有空格的目录中的文件。我试过以下几种:

无引号或转义斜杠:

./duplicity-restore.sh "2018-02-08" dir1/dir2/dir name with spaces/filename.txt /destination/

以上结果导致错误"在档案中找不到dir1/dir2/dir-未还原任何文件。">

引用整个路径参数:

./duplicity-restore.sh "2018-02-08" "dir1/dir2/dir name with spaces/filename.txt" /destination/

以上结果导致错误"预期2个参数,得到15个">

只引用名称中有空格的目录:

./duplicity-restore.sh "2018-02-08" dir1/dir2/'dir name with spaces'/filename.txt

以上结果导致错误"预期2个参数,得到15个">

目录名中每个空格旁边的转义斜杠:

./duplicity-restore.sh "2018-02-08" dir1/dir2/dir name with spaces/filename.txt /destination/

以上结果导致错误"预期2个参数,得到15个">

似乎,无论我如何尝试转义目录名中的空格,Duplicity都会将每个空格视为一个单独的参数。我试图恢复的文件有几个目录,所有目录的名称中都包含空格。

Duplicity版本为0.7.17,可在CentOS7上运行,并可备份到AmazonS3存储桶。

这是包装器外壳脚本中的一个错误,而不是口是心非。如果你想把一个参数当作一个参数来处理,你就必须用引号重写它。

duplicity ... --file-to-restore "$2" ...

ede/duply.net

相关内容

  • 没有找到相关文章