我有幾個問題試圖列出s3存儲桶中目錄中的匹配文件。有沒有辦法使用ls和通配符從s3存儲桶中提取文件? (aws cli)
我一直在使用LS創建我的特定目錄中的所有文件(包括時間戳和文件大小)通過添加這一個新的文件,例如aws s3 --profile mybucket1 ls s3://my-bucket1/directory1/directory2/ >> list.txt
的列表。
這是既快速又按預期工作。但是,我還在directory1中列出了一些我想要列出的文件,但只有某些文件與其周圍的通配符匹配。
最接近實現這個的是使用cp(帶--exclude和--include)而不是ls,因爲ls不允許使用--exclude或--include選項,例如aws s3 --profile mybucket1 cp s3://my-bucket1/directory1/ /path/to/local/directory/ --exclude "*" --include "*match-me*" --recursive
,但它永遠需要跨越一個單一的文件(我沒有得到任何標準輸出,因爲我相信它會在複製任何內容之前掃描整個目錄尋找匹配的字符串)。我也無法刪除 - 遞歸,因爲它沒有它就給我一個錯誤,儘管我只想在directory1中複製文件。
我的選擇是使用ls,因爲它更快,我不必在下載的文件上做另一個ls來生成與我列出的和從directory2附加的文件相同的格式。
此外,我在一個bash腳本中運行所有這些命令,以防有什麼區別。
我希望這是有道理的,如果有人有任何可能的解決方案,這將是非常感激。
查看「aws s3同步幫助」 – NauT
如果人們有興趣爲這些類型的問題創建場所,請遵循關於[在StackExchange上專用的雲計算站點]的建議(https://area51.stackexchange.com/提案/ 110490/cloud-computing-aws-azure-google-openstack-etc?referrer = Gtut7wQSWPk88jFJz_zqMg2),並提出一些示例問題。 –