我收到错误消息
“未知选项: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
,它将起作用在$b.txt
中。但是,我不知道如何解决它。
这是我运行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很奇怪,但是我不明白为什么使用变量会出错。预先感谢。
答案 0 :(得分:0)
我没有使用--exclude "*" --include "$b.txt"
,而是使用了aws s3 mv myfolder/"$b.txt" s3://mybucket/
。我敢肯定,我早些时候也尝试过同样的事情,但是在$ b.txt周围没有“”,并且它没有用,因为变量前面有一个空格。