Làm cách nào để sử dụng các ký tự đại diện để `cp` một nhóm tệp với AWS CLI


109

Tôi đang gặp sự cố khi sử dụng *AWS CLI để chọn một tập hợp con các tệp từ một nhóm nhất định.

Thêm *vào đường dẫn như thế này dường như không hoạt động

aws s3 cp s3://data/2016-08* .

Câu trả lời:


181

Để tải nhiều file từ một xô AWS vào thư mục hiện tại của bạn, bạn có thể sử dụng recursive, excludeincludelá cờ như thế này:

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"

Để biết thêm thông tin về cách sử dụng các bộ lọc này: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters


24
Tôi muốn chỉ ra --exclude "*"không phải là lỗi đánh máy. Nếu bạn không thêm nó, bao gồm sẽ khớp với bất kỳ thứ gì . Theo tài liệu: Lưu ý rằng, theo mặc định, tất cả các tệp đều được bao gồm. Điều này có nghĩa là chỉ cung cấp một bộ lọc - bao gồm sẽ không thay đổi những tệp được chuyển. --include sẽ chỉ bao gồm lại các tệp đã bị loại trừ khỏi bộ lọc --exclude. Nếu bạn chỉ muốn tải lên các tệp có phần mở rộng cụ thể, trước tiên bạn cần phải loại trừ tất cả các tệp, sau đó bao gồm lại các tệp có phần mở rộng cụ thể.
pyb

7
Hãy lưu ý về thứ tự loại trừ và bao gồm.
keiki

3
Bạn cũng có thể sử dụng synccho một hiệu ứng tương tự, theo mặc định là đệ quy:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
Âm hưởng

55

Thứ tự của các vấn đề tham số

Loại trừ và bao gồm nên được sử dụng theo một thứ tự cụ thể, Đầu tiên chúng ta phải loại trừ và sau đó bao gồm. Phó bản của nó sẽ không thành công.

aws s3 cp s3://data/ . --recursive  --include "2016-08*" --exclude "*" 

Điều này sẽ không thành công vì thứ tự của các tham số thay đổi trong trường hợp này. Bao gồm bị loại trừ bởi *

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`

Cái này sẽ hoạt động vì chúng tôi đã loại trừ mọi thứ nhưng sau đó chúng tôi đã đưa vào thư mục cụ thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.