考虑以下方面的aws bucket / key结构
myBucket/dir1/file1
myBucket/dir1/file2
myBucket/dir1/dir2/dir2file1
myBucket/dir1/dir2/dir2file2
使用时:
aws s3 cp --recursive s3://myBucket/dir1/ .
然后,我们将复制dir2file[1,2]
和file[1,2]
。如何只复制后面的文件而不复制子目录下的文件?
回复评论:。我对每个子目录都没有放置--exclude
并不感兴趣,所以这不是excluding directories from aws cp
答案 0 :(得分:1)
您可以使用--exclude
选项排除路径,例如
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "dir1/dir2/*"
使用aws cli帮助可以找到更多选项和示例
aws s3 cp help
答案 1 :(得分:1)
据我了解,您要确保复制当前目录中存在的文件,但不应复制子目录中的任何文件。我认为您可以使用类似的方法。
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "*/*"
在这里,我们排除了在“ dir1”之后具有路径分隔符的文件。
答案 2 :(得分:0)
使用aws s3 cp
复制文件时,您无法控制递归深度。 aws s3 ls
均不支持。
因此,如果您不希望使用--exclude
或--include
选项,建议您:
aws s3 ls
选项的--recursive
命令直接在目录下列出文件,仅从输出中提取文件名,然后将名称保存到文件中。请参阅此post aws s3 cp
或者,您可以使用:
aws s3 cp s3://spaces/dir1/ . --recursive --exclude "*/*"