Kompresuj pliki podczas odczytywania danych z STDIN


Odpowiedzi:


180

Tak, użyj do tego programu gzip. Najlepszym sposobem jest odczytanie danych jako danych wejściowych i przekierowanie skompresowanego pliku do pliku wyjściowego, tj

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

cat test.csvwyśle ​​dane jako standardowe wyjście i używając potoku znak gzip odczyta te dane jako standardowe wejście. Upewnij się, że przekierowujesz wyjście gzip do jakiegoś pliku, ponieważ skompresowane dane nie zostaną zapisane na terminalu.


4
Zwróć uwagę, że pliki test.csv.gz mają rozmiar 0, dopóki strumień danych nie zostanie zamknięty.
MUY Belgium

... a jak to się robi? Czy to naprawdę osobne pytanie?
russellpierce

9
Działa to również z xz:mysqldump mydb | xz > dbdump.sql.xz
jeroen

1
Można użyć -9, domyślny poziom kompresji to -6.
Pablo A

110

Tak, gzippozwolę ci to zrobić. Jeśli po prostu uruchomisz gzip > foo.gz, skompresuje STDIN do pliku foo.gz. Możesz również przesłać do niego dane, na przykład some_command | gzip > foo.gz.


1

gzip > stdin.gzbyć może? W przeciwnym razie musisz uściślić swoje pytanie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.