$ gzip file.txt | aws s3 cp file.txt.gz s3://my_bucket/
我正在尝试将file.txt gzip到file.txt.gz并将其传递给aws程序,该程序将s3作为命令而cp作为子命令。
生成:警告:正在跳过文件file.txt.gz.文件不存在。
我是linux的新手。有人可以帮忙吗?
答案 0 :(得分:7)
$ gzip -c file.txt | aws s3 cp - s3://my_bucket/file.txt.gz
除非你想在本地拥有.gz文件,否则你可以在一步中完成gzip和传输,让file.txt保持完整。
现在,较新版本的AWS CLI允许您通过' - '字符。
答案 1 :(得分:4)
将|
替换为&&
。 |
表示管道,它立即运行aws
命令,无需等待gzip
完成甚至启动。此外|
将不执行任何操作,因为其目的是将gzip
的stdout输出发送到aws
的stdin输入。该表格中没有来自gzip
的标准输出。
如果您真的希望gzip
将其输出发送到stdout并且而不是写入文件file.txt.gz
,那么您需要使用gzip -c file.txt
。然后,您需要aws
的方式来接收该数据。在Unix实用程序中指定的典型方法是用-
替换文件名。但是我不知道gzip -c file.txt | aws s3 cp - s3://my_bucket/
是否有效。