使用AWS S3 MV时的未知选项

时间:2018-08-08 23:49:22

标签: amazon-web-services amazon-s3 amazon-ec2 aws-cli

我收到错误消息

  

“未知选项: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很奇怪,但是我不明白为什么使用变量会出错。预先感谢。

1 个答案:

答案 0 :(得分:0)

我没有使用--exclude "*" --include "$b.txt",而是使用了aws s3 mv myfolder/"$b.txt" s3://mybucket/。我敢肯定,我早些时候也尝试过同样的事情,但是在$ b.txt周围没有“”,并且它没有用,因为变量前面有一个空格。