如何使用AWS命令行复制文件并保留目录结构

5

我本地电脑上有以下目录:

dir1
  |
  |__ randomfile.jpg
  |__ dir2
        |
        |__ file1.txt
        |__ file2.txt
        |__ pict.png

我想要做的是将所有带有*.txt的文件复制并保留子目录结构到Amazon S3存储桶中。我该怎么做?
最终在S3中,我们想要找到这个文件和目录结构:
 dir1
      |
      |__ dir2
            |
            |__ file1.txt
            |__ file2.txt

使用标准的Unix命令可以这样实现:

find . -name '*.txt' -exec cp --parents \{\} /target \;

但是不确定如何使用AWS命令行

实际情况中,我们要传输的文件大小约为10TB。


可能是一个重复的问题,你可以参考这个链接:https://dev59.com/RGoy5IYBdhLWcg3wQ8AF - codeforester
1个回答

8

只需使用同步功能:

aws s3 sync src/ s3://mybucket --exclude "*" --include "*.txt"

排除包含文档


2
作为对sync的替代方案(sync是用于重复同步的),您可以使用aws s3 cp --recursive ...来完成相同的任务。 - John Rotenstein
@JohnRotenstein,你可以这样做,但是目前排除和包含仅适用于同步而不是复制或移动! - Karan Shah
@KaranShah 那个使用 cp 的方法需要加上 --recursive 参数。 - Ôrel
@Ôrel 递归将复制所有内容,无法排除问题中提到的随机文件。 - Karan Shah
我的观点是cp支持排除和包含,但为了保持结构,你需要同步。我同意。 - Ôrel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接