2017-04-12 82 views
3

好吧,我非常的AWS CLI混淆S3 CLI包括不工作

我有一个S3桶:

s3://my-bucket 
    directory/ 
    file1 
    file2 
    backup-logs-1234 
    backup-logs-5678 

我验证过的文件都在S3存储桶,我可以看到他们aws s3 ls s3://my-bucket

我想删除所有的备份日志文件夹(其中8000)英寸我试过)包含/排除的每一个组合我能想到的

1出于某种原因aws s3 rm "s3://my-bucket/" --include "*backup-logs*" --dryrun试图删除s3://my-bucket/directory/

2)aws s3 rm "s3://my-bucket/" --exclude "*" --include "*backup-logs*" --dryrun没有看到任何要删除的文件

3)I还尝试了不同的“备份”子串(例如b,ba,back)

4)我也尝试添加递归(即使我不想它),它会找到所有文件在directory/这个模式相匹配,但没有顶级的

我知道我在做一些愚蠢的事。在此先感谢您的帮助

回答

4

aws s3 rm s3://my-bucket/ --recursive --exclude "*" --include "*backup-logs*"应该工作。

当你想你的水桶内删除多个对象

--recursive(布尔)命令对所有文件进行或对象的指定目录或前缀下 。

你可以阅读http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters大约包含/排除使用

+0

啊,所以你必须使用递归,即使你只关心一个水平?这是不直观的。得到它的工作,你的答案是接近,但我也有添加排除,否则它包括了一切:'AWS S3 RM“S3://我斗” - 排除“*” --include“*备份日志* “ - 递归”。谢谢! – toppy42

+0

好吧,忘了这个,会更新答案 –