【问题标题】:Unknown Options when Using aws s3 mv使用 aws s3 mv 时的未知选项
【发布时间】: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


【解决方案1】:

我没有使用--exclude "*" --include "$b.txt",而是使用了aws s3 mv myfolder/"$b.txt" s3://mybucket/。我很确定我之前在 $b.txt 周围没有 "" 的情况下尝试过同样的事情,但它不起作用,因为变量前面有一个空格。

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2023-01-20
    • 2019-07-15
    • 1970-01-01
    相关资源
    最近更新 更多