Amazon s3 在AmazonS3中重命名文件

Amazon s3 在AmazonS3中重命名文件,amazon-s3,cmd,Amazon S3,Cmd,我想将AmazonS3存储桶中的所有文件的扩展名从.PDF重命名为.PDF(小写) 已经有人这么做了吗?有很多文件(大约1500个)。S3cmd是最好的方法吗?你会怎么做 s3cmd --recursive ls s3://bucketname | awk '{ print $4 }' | grep "*.pdf" | while read -r line ; do s3cmd --recursive mv s3://<s3_bucketname>/$line

我想将AmazonS3存储桶中的所有文件的扩展名从.PDF重命名为.PDF(小写)

已经有人这么做了吗?有很多文件(大约1500个)。S3cmd是最好的方法吗?你会怎么做

  s3cmd --recursive ls s3://bucketname |
        awk '{ print $4 }' | grep "*.pdf"  | while read -r line ; do

s3cmd --recursive mv s3://<s3_bucketname>/$line/ s3://<s3_bucketname>/${line%.*}".PDF"

done
以前

 ls
    a1.pdf  a2.pdf  a4.pdf  a6.pdf  a8.pdf  grep.sh
    a10.pdf a3.pdf  a5.pdf  a7.pdf  a9.pdf
脚本文件grep.sh

#/bin/bash
ls |grep .pdf | while read -r line ; do # here use ls from s3
    echo "Processing $line"
    # your s3 code goes here
    mv $line ${line%.*}".PDF"
done
添加权限并重试

 chmod u+x grep.sh

./grep.sh
之后


您可以应用相同的逻辑。与其使用s3
mv
不如使用s3
mv

问题是:如何使用.PDF查找文件,以及如何使用s3cmd进行此循环?命令可能需要一些更改,我无法访问s3进行测试,但您可以尝试一下。我没有成功地使命令工作。它应该将文件名中的所有“.PDF”替换为“.PDF”?逻辑是获取扩展名为
.PDF
的文件,然后在循环中应用
mv
命令来重命名它们。我会尽量把同样的地方版本,以便你会得到一个想法。您可以对s3
mv
应用相同的方法。我收到消息“错误替换”。你知道它来自哪里吗?请注意,你实际上不能重命名上传的文件。您只能使用新名称复制它们
 chmod u+x grep.sh

./grep.sh
ls
a1.PDF  a2.PDF  a4.PDF  a6.PDF  a8.PDF  grep.sh
a10.PDF a3.PDF  a5.PDF  a7.PDF  a9.PDF