【发布时间】:2019-01-16 08:00:54
【问题描述】:
我收到错误消息
“未知选项:s3://mybucket/”
使用以下命令集将文件 mv 到 S3 时。我从echo $b 得到的输出正是我所期望的,所以我知道我的目标是正确的文件。错误发生在aws s3 mv ...行上
tag=$( tail -n 2 /var/log/cloud-init-output.log )
if [[ ${tag} == *"Processed"* ]]; then
b=${tag##*"from"}
b=${b%%.*} # retain the part before the colon
aws s3 mv myfolder/ s3://mybucket/ --recursive --exclude "*" --include "$b.txt"
fi
在搞砸了很长时间之后,我相信 mv 命令中的 $b 变量是问题所在,因为如果我将 echo $b 的输出替换为 $b.txt 中的 $b,它将起作用。但是,我不知道如何解决它。
这是我运行aws --version时的输出:
aws-cli/1.14.8 Python/2.7.14 Linux/4.14.47-64.38.amzn2.x86_64 botocore/1.8.12
这是最新版本,我已经尝试运行(我安装了python3):
pip3 install --upgrade awscli
我知道通配符在 aws-cli 中很奇怪,但我不明白为什么使用变量会出错。提前致谢。
【问题讨论】:
-
尝试在
aws s3 mv前面加上echo,看看它试图执行什么命令。 -
echo sudo aws s3 mv myfolder/ s3://mybucket/ --recursive --exclude "*" --include "$b.txt"输出sudo aws s3 mv myfolder/ s3://mybucket/ --recursive --exclude * --include account_dim.txt这是文件的正确名称。然后,当我复制并粘贴回声并将引号放回"*"和"account_dim.txt"周围时,它就可以工作了。
标签: amazon-web-services amazon-s3 amazon-ec2 aws-cli