看起來很簡單,但沒有得到正確的語法。我想知道使用通配符在我的s3存儲桶中是否存在文件。像使用ls和通配符檢查s3中是否存在文件
aws s3 ls s3://my-bucket/folder/*myfile*
東西的目的是看看是否一個名爲2016_myfile.txt
或稱爲2011_myfile.csv
文件這個桶中存在。
如果我運行該命令,即使我知道該文件存在,它也不會返回任何內容。
看起來很簡單,但沒有得到正確的語法。我想知道使用通配符在我的s3存儲桶中是否存在文件。像使用ls和通配符檢查s3中是否存在文件
aws s3 ls s3://my-bucket/folder/*myfile*
東西的目的是看看是否一個名爲2016_myfile.txt
或稱爲2011_myfile.csv
文件這個桶中存在。
如果我運行該命令,即使我知道該文件存在,它也不會返回任何內容。
s3cmd grep也適用於我。
s3cmd ls --recursive s3://mybucket/folder/folder2 | grep filename
S3不支持通配符列表。你需要列出所有的文件並grep它。
aws s3 ls s3://mybucket/folder --recursive
上面的命令會給出文件夾下的文件列表,它也會搜索文件夾中的文件。只需用grep你的文件名
aws s3 ls s3://mybucket/folder --recursive |grep filename
假設,如果你想找到多個文件,創建這些的正則表達式和grep它。
非常低效,但爲什麼不做類似「aws s3 ls s3:// my-bucket/folder/| grep myfile」? 也就是說,如果你堅持使用CLI。使用Boto的python腳本會更有效率,但它不是單行命令。 –
@GilAdirim其實這也會起作用。我只是感到驚訝,aws-cli沒有提供這樣的東西,並認爲我錯過了什麼 – Nicros
@GilAdirim我一直在看Boto,我也沒有看到它如何支持通配符,你有沒有一個指針可以提供? –