AWS CLI에서 와일드 카드를 사용하여 파일 그룹을`cp`하려면 어떻게해야합니까?


109

*특정 버킷에서 파일의 하위 집합을 선택하기 위해 AWS CLI에서 사용 하는 데 문제 가 있습니다.

*이와 같은 경로에 추가 하는 것이 작동하지 않는 것 같습니다.

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

답변:


183

현재 디렉토리에 AWS 버킷에서 여러 파일을 다운로드하려면, 당신은 사용할 수 있습니다 recursive, exclude그리고 include이 같은 플래그 :

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

이러한 필터를 사용하는 방법에 대한 자세한 정보 : http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters


24
나는 --exclude "*"오타가 아니라는 점을 지적하고 싶습니다 . 추가하지 않으면 포함이 모든 항목과 일치합니다 . 문서에 따라 : 기본적으로 모든 파일이 포함되어 있습니다. 즉, --include 필터 만 제공해도 전송되는 파일은 변경되지 않습니다. --include는 --exclude 필터에서 제외 된 파일 만 다시 포함합니다. 특정 확장자를 가진 파일 만 업로드하려면 먼저 모든 파일을 제외하고 특정 확장자를 가진 파일을 다시 포함해야합니다.
pyb

7
제외 및 포함의 순서도 알고 있어야합니다.
keiki

3
sync기본적으로 재귀적인 비슷한 효과를 사용할 수도 있습니다 .aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
enharmonic

55

매개 변수의 순서가 중요합니다

제외 및 포함은 특정 순서로 사용해야합니다. 먼저 제외하고 포함해야합니다. 그 반대는 성공하지 못할 것입니다.

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

이 경우 매개 변수의 순서가 일치하므로 실패합니다. 포함은 *로 제외됩니다.

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

이것은 우리가 모든 것을 제외했지만 나중에 특정 디렉토리를 포함했기 때문에 작동합니다.


1

좋습니다. 예가 틀 렸으며 다음과 같이 수정해야합니다.

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

.필요는 후 잘 될 수 있습니다 cp. 마지막 --exclude으로 사용자가 선택한 하위 디렉토리에서 아무것도 선택하지 않도록하는 것입니다.--recursive (실수로 배운) .

이것은 그들이 여기에 도착할 때까지 이것으로 어려움을 겪는 모든 사람들에게 효과적입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.