¿Cómo puedo usar comodines para "cp" un grupo de archivos con la AWS CLI?


109

Tengo problemas para utilizar *la AWS CLI para seleccionar un subconjunto de archivos de un determinado depósito.

Agregar *a la ruta como esta no parece funcionar

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

Respuestas:


181

Para descargar varios archivos desde un cubo de AWS a su directorio actual, se puede utilizar recursive, excludey includebanderas de este tipo:

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

Para obtener más información sobre cómo utilizar estos filtros: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters


24
Me gustaría señalar que --exclude "*"no es un error tipográfico. Si no lo agrega, la inclusión coincidirá con cualquier cosa . Según la documentación: tenga en cuenta que, de forma predeterminada, se incluyen todos los archivos. Esto significa que proporcionar solo un filtro --include no cambiará los archivos que se transfieren. --include solo volverá a incluir archivos que hayan sido excluidos de un filtro --exclude. Si solo desea cargar archivos con una extensión en particular, primero debe excluir todos los archivos y luego volver a incluir los archivos con la extensión en particular.
pyb

7
Tenga en cuenta el orden de exclusión e inclusión también.
keiki

3
También puede usar syncpara un efecto similar, que es recursivo por defecto:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
enarmónico

55

El orden de los parámetros importa

La exclusión y la inclusión deben usarse en un orden específico. Primero debemos excluir y luego incluir. Lo contrario no tendrá éxito.

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

Esto fallará porque el orden de los parámetros importa en este caso. La inclusión está excluida por el *

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

Este funcionará porque excluimos todo, pero luego incluimos el directorio específico.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.