s3cmd:根据扩展名搜索文件并从存储桶中删除

时间:2012-07-24 11:15:44

标签: amazon-s3 amazon-web-services s3cmd

我有一个S3存储桶,其中包含数千个文件夹和许多txt文件。

我想列出存储桶中的所有txt文件,以便检查它们是否可移动。然后删除它们。

知道如何用s3cmd做到这一点吗?

1 个答案:

答案 0 :(得分:8)

这很简单,但取决于您希望检查的复杂程度。假设您要删除文件名包含'foo'的每个文本文件:

s3cmd --recursive ls s3://mybucket |
    awk '{ print $4 }' | grep "*.txt" | grep "foo" | xargs s3cmd del

如果你想要比grep可以处理更复杂的检查,只需将前三个命令重定向到一个文件,然后手动编辑文件或使用或awkperl或任何你喜欢的工具是,然后将cat输出到s3cmd(取决于检查,您也可以使用管道完成所有操作):

s3cmd --recursive ls s3://mybucket | awk '{ print $4 }' | grep "*.txt" > /tmp/textfiles
magic-command-to-check-filenames /tmp/textfiles
cat /tmp/textfiles | xargs s3cmd del