STDIN'den veri okurken dosyaları sıkıştır


127

Linux'ta stdin'den okurken verileri sıkıştırmak (sıkıştırılmış bir arşiv oluşturmak) mümkün müdür?


Unix ve Linux'a ait olduğu için bu soruyu konu dışı olarak kapatmaya oy veriyorum
Dan Dascalescu

Yanıtlar:


180

Evet, bunun için gzip kullanın. En iyi yol, verileri girdi olarak okumak ve sıkıştırılmış dosyayı çıktı dosyasına yönlendirmektir.

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

cat test.csvveriyi standart çıktı olarak gönderecek ve boru işareti gzip kullanmak bu veriyi stdin olarak okuyacaktır. Sıkıştırılmış veriler terminale yazılmayacağından gzip çıktısını bir dosyaya yeniden yönlendirdiğinizden emin olun.


4
Veri akışı kapatılana kadar test.csv.gz dosyalarının 0 boyutunda kalacağını unutmayın.
MUY Belçika

... ve bu nasıl yapılır? Gerçekten ayrı bir soru mu?
russellpierce

9
Bu aynı zamanda xzmysqldump mydb | xz > dbdump.sql.xz
şunlarla

1
Kullanılabilir -9, varsayılan sıkıştırma seviyesi -6.
Pablo A

110

Evet, gzipbunu yapmana izin vereceğim. Basitçe çalıştırırsanız gzip > foo.gz, STDIN'i foo.gz dosyasına sıkıştıracaktır. Ayrıca, gibi verileri içine aktarabilirsiniz some_command | gzip > foo.gz.


1

gzip > stdin.gzbelki? Aksi takdirde, sorunuzu detaylandırmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.