You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CLI递归复制S3文件到本地显示成功但本地无文件问题

问题原因
  • 核心问题是alias的命令替换展开时机错误:你用双引号包裹alias的配置内容,shell在加载~/.bash_aliases时,就会直接把$(pwd)替换成加载配置那一刻你所在的目录路径,后续不管你cd到哪个目标目录执行aws命令,容器始终挂载的是这个固定的旧目录到容器内的/aws路径。
  • 官方aws cli镜像的默认工作目录就是容器内的/aws,你执行cp命令下载到.的文件,实际都写到了那个固定的旧挂载目录里,加上你给docker加了--rm参数,容器执行完就自动删除,你在后来cd进入的目标目录当然找不到文件。
  • 额外排查项:你贴出的alias配置末尾缺少闭合双引号,如果实际配置里也有这个语法问题,也会导致挂载参数异常。
解决步骤
  1. 编辑~/.bash_aliases文件,把alias的包裹引号改成单引号,保证$(pwd)会在每次执行aws命令时动态读取当前工作目录,同时补全末尾的闭合引号,配置如下:
    alias aws='docker run --rm -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'
    
  2. 执行命令重新加载别名配置,让修改生效:
    source ~/.bash_aliases
    
  3. 重新cd到存放下载文件的目标目录,再次执行s3递归复制命令,文件就会正常出现在当前目录了。

验证小技巧:重新加载配置后,可以先在当前目录新建一个测试文件,执行aws ls .如果能看到这个测试文件,说明挂载路径已经正常生效。

内容的提问来源于stack exchange,提问作者AK91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 04:33:24