S3文件打标签失败求助:执行AWS命令遇getcwd目录访问错误
解决AWS S3打标签时的shell目录访问错误
首先给你吃个定心丸:从返回的VersionId来看,你的S3对象打标签操作大概率已经成功了!那个shell错误是执行命令时的环境问题,不是AWS CLI操作本身失败。
第一步:验证标签是否成功添加
先执行下面的命令确认标签已经生效:
aws s3api get-object-tagging --bucket dev-us-east-1 --key AXD_M/merge_1/part-00000-10b98444-ecc9-4140-851b-2499bf9c65cd-c000.snappy.parquet
如果返回结果里包含TagSet和你设置的Key=Tag,Value=True,说明操作完全没问题,那个shell错误只是个小插曲。
第二步:解决shell目录访问错误
出现shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory这个错误,原因很明确:你执行命令时所在的当前目录或者它的父目录被删除了,或者当前用户没有权限访问这些目录。
这里有几个快速修复的方法:
- 先切换到一个肯定存在的目录,比如用户主目录:
之后再重新执行你的打标签命令,就不会再出现这个错误了。cd ~ - 检查当前目录状态:执行
pwd看看输出的目录是否真的存在,用ls -ld $(pwd)检查目录的权限和存在性。 - 如果是在脚本里执行AWS命令,建议在开头先切换到一个稳定的目录(比如
/tmp),避免因为目录被意外删除导致这类问题。
为什么错误出现但操作还能成功?
这个shell错误是在命令执行前的shell初始化阶段发生的(比如shell尝试获取当前工作目录时失败),但AWS CLI命令本身已经被启动并完成了请求,所以S3的打标签操作正常完成,返回了VersionId。
内容的提问来源于stack exchange,提问作者LUZO
相关产品推荐
相关产品推荐

