Linux 使用gzip压缩文件以使用aws命令传输

Linux 使用gzip压缩文件以使用aws命令传输,linux,amazon-ec2,amazon-s3,gzip,cp,Linux,Amazon Ec2,Amazon S3,Gzip,Cp,我正在尝试将file.txt转换为file.txt.gz,并将其传递给aws程序,该程序将s3作为命令,cp作为子命令 生成:警告:跳过file.txt.gz文件。文件不存在 我是linux的新手。有人能帮忙吗?用&&替换。|表示管道,它立即运行aws命令,而无需等待gzip完成甚至启动。另外,|在这里也不起作用,因为它的目的是将gzip的标准输出发送到aws的标准输入。该格式的gzip没有标准输出 如果确实希望gzip将其输出发送到stdout,而不是写入文件file.txt.gz,则需要使用

我正在尝试将file.txt转换为file.txt.gz,并将其传递给aws程序,该程序将s3作为命令,cp作为子命令

生成:警告:跳过file.txt.gz文件。文件不存在


我是linux的新手。有人能帮忙吗?

&&
替换
|
表示管道,它立即运行
aws
命令,而无需等待
gzip
完成甚至启动。另外,
|
在这里也不起作用,因为它的目的是将
gzip的标准输出发送到
aws
的标准输入。该格式的
gzip
没有标准输出

如果确实希望
gzip
将其输出发送到stdout,而不是写入文件
file.txt.gz
,则需要使用
gzip-c file.txt
。然后,您需要一种方法让aws
aws
接收该数据。在Unix实用程序中指定的典型方法是将文件名替换为
-
。但是,我不知道
gzip-c file.txt | aws s3 cp-s3://my_bucket/
是否可以工作

$ gzip file.txt | aws s3 cp file.txt.gz s3://my_bucket/
除非您希望在本地使用file.txt的.gz文件,否则这允许您一步完成gzip和传输,而将file.txt文件保留在tact中


AWS CLI的较新版本现在允许您通过“-”字符执行UNIX风格的steam

您是否检查过aws命令是否能够读取标准数据流?并非每个命令都能处理来自stdin的输入。aws命令语法对我来说非常清楚,它希望文件系统中有一个不存在的文件。将您的|更改为;所以有些程序不接受其他程序(命令)的标准流。你知道aws会不会走那条路吗?但我不想要本地的gziped拷贝。通过这种方式,它拉链文件,并没有留下原件供以后使用!我想把那个文件放在那里,把压缩后的文件传送出去。谢谢。我要试试这个,然后回来找你。
$ gzip -c file.txt | aws s3 cp - s3://my_bucket/file.txt.gz