AWS S3 cli将最新的2个或多个文件下载到目录中



我想从现有的bucket文件夹下载最新的2个文件,有人能告诉我如何在shell脚本中实现这一点吗?

我知道下面的命令列出了目录中最新的两个文件,但我如何使用aws cp将最新的2个文件下载到我的目录?

aws s3 ls $BUCKET --recursive | sort | tail -n 2 | awk '{print $4}' 

应该这样做:

LIST=$(aws s3 ls $BUCKET --recursive | sort | tail -n 2 | awk '{print $4}')
for x in $LIST; do
aws s3 cp s3://$BUCKET/$x .
done

如果使用反向排序并强制awk只处理前2条记录,则不需要在此处使用tail。您还可以使用系统内置的awk函数来保存循环。

aws s3 ls $BUCKET --recursive | sort -r | awk 'NR<=2 { system("aws s3 ls "$4"/$x .")

请注意在使用系统之前打印命令的重要性,以确保在执行之前正确构建命令。

相关内容

  • 没有找到相关文章

最新更新