STDINからデータを読み取りながらファイルを圧縮する


127

Linuxでstdinからの読み取り中にデータを圧縮(圧縮アーカイブを作成)することは可能ですか?


それはUnixの&Linuxへ属しているので、私は、オフトピックとして、この質問を閉じるために投票しています
ダンDascalescu

回答:


180

はい、これにはgzipを使用します。最良の方法は、入力としてデータを読み取り、圧縮して出力ファイルにリダイレクトすることです。

cat test.csv | gzip > test.csv.gz

cat test.csvstdoutとしてデータを送信し、pipe-sign gzipを使用してそのデータをstdinとして読み取ります。圧縮されたデータは端末に書き込まれないため、gzip出力をいくつかのファイルにリダイレクトしてください。


4
test.csv.gzファイルは、データフラックスが閉じられるまでサイズが0のままであることに注意してください。
MUYベルギー、2013

...そしてそれをどのように行うのですか?本当に別の質問ですか?
russellpierce 2015年

9
また、これはで動作しますxzmysqldump mydb | xz > dbdump.sql.xz
イェルーン

1
使用することができ-9、デフォルトの圧縮レベルです-6
Pablo A

110

はい、gzipできます。を単に実行するとgzip > foo.gz、STDINがファイルfoo.gzに圧縮されます。のようにデータをパイプすることもできsome_command | gzip > foo.gzます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.