2017-02-22 3 views
1

J'ai un certain nombre de fichiers qui sont contenus dans des sous-dossiers de /myfolder. Je voudrais utiliser aws cli pour les déplacer vers /newfolder.Comment copier des fichiers à partir de sous-répertoires directement dans un dossier en utilisant aws-cli

Par exemple:

/myfolder/2017_01_01/file1.txt 
/myfolder/2017_01_02/file2.txt 
... 

Je veux copier les fichiers vers un nouveau dossier:

/newfolder/file1.txt 
/newfolder/file2.txt 
... 

Lorsque j'utilise la commande cp comme ci-dessous:

aws s3 cp s3://myfolder/ s3://newfolder/ --recursive --exclude '*' --include '*file*' 

Le les fichiers corrects sont copiés, mais le problème est que les fichiers restent dans leurs sous-dossiers au nouveau lo cation:

/newfolder/2017_01_01/file1.txt 
/newfolder/2017_01_02/file2.txt 
... 

Est-il possible de copier les fichiers « out » de leurs sous-dossiers afin qu'ils soient directement mis en /newfolder?

Répondre

1

La meilleure façon de le faire est une solution hybride en supposant que vous avez shell linux: (assurez-vous de créer un dossier vide dans votre ordinateur local et CD avant de faire les étapes ci-dessous)

1.aws s3 cp s3://yourBucket/myfolder . --recursive --include "*.txt" 
2.find . -name '*txt' -exec mv {} . \; 
3.aws s3 cp ./ s3://yourBucket/newfolder --exclude "*" --include "*.txt" --recursive