2017-07-07 3 views
0

Der Anwendungsfall ist, ich möchte bestimmte Daten vom Aufstieg bis S3 ausschließen. Die Dateien könnten sich irgendwo innerhalb der Dateihierarchie befinden, aber wenn sie irgendwo unterhalb eines Verzeichnisses mit dem Namen foobar enthalten sind, möchte ich nicht, dass sie kopiert werden.Wie kann ich AWS CLI sync dazu bringen, alle Dateien auszuschließen, die einem Verzeichnismuster entsprechen?

Zum Beispiel:

/my-data/20150806-1600/foobar/blah.csv # Exclude 
/my-data/20150806-1600/dingbat/blah.csv # Include 
/my-data/clients/foobar/README.txt  # Exclude 

$ /usr/local/bin/aws --version 
aws-cli/1.11.117 Python/2.7.6 Linux/3.13.0-92-generic botocore/1.5.80 

Ach ...

/usr/local/bin/aws s3 sync /my-data/ s3://my-bucket/my-data/ --exclude '*/foobar/*' --exclude '*/foobaz/*' --delete 

Die Dateien laden noch. Ich habe versucht, die Ausschlussmuster zu foobar/* und *foobar* zu ändern, aber in jedem Fall werden Dateien, die einem übergeordneten Verzeichnis mit foobar im Pfad entsprechen, immer noch hochgeladen.

+0

'--exclude '* foobar/*'' vielleicht? – bishop

Antwort

0

Für mich schien es nur zu funktionieren, indem *foobar* oder *foorbar/* ausgeschlossen wurde. Es wäre nicht Arbeit von */foobar/* ausgenommen:

$ ls -lR stack 
total 8 
drwxr-xr-x 3 user wheel 102 8 Jul 23:25 foobar 
-rw-r--r-- 1 user wheel 5 8 Jul 23:25 level1 

stack/foobar: 
total 8 
-rw-r--r-- 1 user wheel 5 8 Jul 23:25 level2 

$ aws s3 sync stack/ s3://my-bucket --exclude '*foobar*' 
upload: stack/level1 to s3://my-bucket/level1 
Verwandte Themen