Semble si simple, mais pas la bonne syntaxe. Je veux savoir si un fichier existe dans mon compartiment s3 à l'aide de caractères génériques. Quelque chose comme
aws s3 ls s3://my-bucket/folder/*myfile*
Le but est de voir si un fichier appelé 2016_myfile.txt
ou un fichier appelé 2011_myfile.csv
existe dans ce compartiment.
Si j'exécute la commande, elle ne renvoie rien même si je sais que ce fichier existe là.
(remanié du commentaire car il semble que cela ait répondu à la question)
J'ai moi-même essayé et échoué à utiliser des caractères génériques dans aws-cli, et selon le docs , ce n'est pas actuellement pris en charge. La solution la plus simple (mais la moins efficace) serait d'utiliser grep:
aws s3 ls s3://my-bucket/folder/ | grep myfile
Alternativement, vous pouvez écrire un court script python/autre pour le faire plus efficacement (mais pas en une seule commande)
S3 ne prend pas en charge la liste des caractères génériques. Vous devez lister tous les fichiers et le grep.
aws s3 ls s3://mybucket/folder --recursive
La commande ci-dessus donnera la liste des fichiers sous votre dossier, elle recherche également les fichiers à l'intérieur du dossier. Grep juste votre nom de fichier
aws s3 ls s3://mybucket/folder --recursive |grep filename
Supposons que si vous souhaitez rechercher plusieurs fichiers, créez une expression régulière de ceux-ci et grepez-la.
s3cmd fonctionne également pour moi avec grep.
s3cmd ls --recursive s3://mybucket/folder/folder2 | grep filename