stdcerr Asked: 2018-11-07 20:08:38 +0800 CST2018-11-07 20:08:38 +0800 CST 2018-11-07 20:08:38 +0800 CST 仅从 s3 存储中复制特定日期的文件 772 我只想从包含 100 个文件的某个存储桶中复制来自今天的 S3 文件。我尝试了以下方法:$ aws s3 ls s3://cve-etherwan/ --recursive --region=us-west-2 | grep 2018-11-06 | awk '{system("aws s3 sync s3://cve-etherwan/$4 . --region=us-west-2") }'但效果不佳,我还从其他日期获取文件。我该如何正确地做到这一点? file-copy date 3 个回答 Voted Best Answer MLu 2018-11-07T20:32:42+08:002018-11-07T20:32:42+08:00 那是因为在aws s3您使用sync. 试试cp吧。您也可以将“grep”和“awk”合并在一起。 $ aws s3 ls s3://cve-etherwan/ --recursive | awk '/^2018-11-06/{system("aws s3 cp s3://cve-etherwan/$4 .") }' dirkjot 2019-12-13T13:54:11+08:002019-12-13T13:54:11+08:00 这对我有用 添加了时间限制,这里我选择 12/12/19 的 8:00 到 8:30 略微修改了 awk 部分,删除了错字 而不是从 awk 调用system n次,而是创建一个文本输出并通过 bash 进行管道传输 是的,小心管道进入 bash :-) aws s3 ls --recursive s3://cve-etherwan/ | awk '/^2019-12-12 08:[0-3]/{ print "aws s3 cp s3://cve-etherwan/"$4" ."}' | bash Patrick Ding 2021-05-07T04:57:54+08:002021-05-07T04:57:54+08:00 MLu 的回答对我有用,但我不得不在 Amazon Linux 2 上逃避 4 美元。 aws s3 ls s3://my-files --recursive --region=eu-west-1 | awk '/^2021-01/{system("aws s3 cp s3://my-files/" $4 " .")}' 和 "aws s3 cp s3://my-files/$4 ."取而代之"aws s3 cp s3://my-files/" $4 " ." awk默认情况下将连接字符串。
那是因为在
aws s3
您使用sync
. 试试cp
吧。您也可以将“grep”和“awk”合并在一起。这对我有用
system
n次,而是创建一个文本输出并通过 bash 进行管道传输是的,小心管道进入 bash :-)
MLu 的回答对我有用,但我不得不在 Amazon Linux 2 上逃避 4 美元。
和
"aws s3 cp s3://my-files/$4 ."
取而代之"aws s3 cp s3://my-files/" $4 " ."
awk
默认情况下将连接字符串。