使用带通配符的sync命令在aws3上上载FOLDER/DIRECTORY



我只想使用AWS s3 sync命令在AWS上上传名称以0,1和2结尾的目录。例如,我想上传一个目录名anyname0

我知道我可以用像这样的特定扩展名结尾的文件来做这件事

aws s3 sync 'D:TestDataActual Data' s3://destination-AWSDOC-EXAMPLE-BUCKET/ --exclude "*" --include "*0.txt" --include "*1.txt" --include "*2.txt"

但是有没有办法把这个东西也应用到目录上呢?请帮忙。

您可以使用以下模式来完成此示例

aws s3 sync 'D:TestDataActual Data' 
s3://destination-AWSDOC-EXAMPLE-BUCKET/ 
--exclude "*" 
--include "*anyname0/**"

示例

$ tree
.
├── anyname0
│   ├── 6.txt
│   ├── 7.txt
│   ├── 8.txt
│   └── 9.txt
├── anyname1
│   ├── 6.txt
│   ├── 7.txt
│   ├── 8.txt
│   └── 9.txt
├── anyname2
│   ├── 6.txt
│   ├── 7.txt
│   ├── 8.txt
│   └── 9.txt
├── anyname3
│   ├── 6.txt
│   ├── 7.txt
│   ├── 8.txt
│   └── 9.txt
└── anyname4
├── 6.txt
├── 7.txt
├── 8.txt
└── 9.txt
$ aws s3 sync ./ s3://my-bucket --exclude "*" --include "*anyname0/**" --dryrun
(dryrun) upload: anyname0/6.txt to s3://my-bucket/anyname0/6.txt
(dryrun) upload: anyname0/7.txt to s3://my-bucket/anyname0/7.txt
(dryrun) upload: anyname0/8.txt to s3://my-bucket/anyname0/8.txt
(dryrun) upload: anyname0/9.txt to s3://my-bucket/anyname0/9.txt

还可以做多种图案

$ aws s3 sync ./ s3://my-bucket --exclude "*" 
--include "*anyname0/**" 
--include "*anyname3/**" 
--dryrun
(dryrun) upload: anyname0/6.txt to s3://my-bucket/anyname0/6.txt
(dryrun) upload: anyname0/7.txt to s3://my-bucket/anyname0/7.txt
(dryrun) upload: anyname0/8.txt to s3://my-bucket/anyname0/8.txt
(dryrun) upload: anyname0/9.txt to s3://my-bucket/anyname0/9.txt
(dryrun) upload: anyname3/6.txt to s3://my-bucket/anyname3/6.txt
(dryrun) upload: anyname3/7.txt to s3://my-bucket/anyname3/7.txt
(dryrun) upload: anyname3/8.txt to s3://my-bucket/anyname3/8.txt
(dryrun) upload: anyname3/9.txt to s3://my-bucket/anyname3/9.txt

最新更新