我有一个S3存储桶,其中包含数千个文件夹和许多txt文件。
我想列出存储桶中的所有txt文件,以便检查它们是否可移动。然后删除它们。
知道如何用s3cmd做到这一点吗?
答案 0 :(得分:8)
这很简单,但取决于您希望检查的复杂程度。假设您要删除文件名包含'foo'的每个文本文件:
s3cmd --recursive ls s3://mybucket |
awk '{ print $4 }' | grep "*.txt" | grep "foo" | xargs s3cmd del
如果你想要比grep可以处理更复杂的检查,只需将前三个命令重定向到一个文件,然后手动编辑文件或使用或awk
或perl
或任何你喜欢的工具是,然后将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