Dzięki plikom gzip możesz po prostu połączyć pliki ze sobą, na przykład:
cat file1.gz file2.gz file3.gz > allfiles.gz
Zgodnie z RFC gzip ,
Plik gzip składa się z szeregu elementów członkowskich (skompresowanych zestawów danych). […] Członkowie po prostu pojawiają się jeden po drugim w aktach, bez żadnych dodatkowych informacji przed nimi, między nimi ani po nich.
Zauważ, że nie jest to dokładnie to samo, co budowanie pojedynczego pliku gzip z połączonych danych; między innymi zachowywane są wszystkie oryginalne nazwy plików. Jednak gunzip wydaje się traktować to jako odpowiednik konkatenacji.
Ponieważ istniejące narzędzia generalnie ignorują nagłówki nazw plików dla dodatkowych elementów, nie jest łatwo wyodrębnić pojedyncze pliki z wyniku. Jeśli chcesz, aby było to możliwe, zamiast tego utwórz plik ZIP. ZIP i GZIP używają algorytmu DEFLATE do rzeczywistej kompresji (ZIP obsługuje niektóre inne algorytmy kompresji, a także opcję - metoda 8 to ta, która odpowiada kompresji GZIP); różnica tkwi w formacie metadanych. Ponieważ metadane są nieskompresowane, wystarczy usunąć nagłówki gzip i zamiast tego dołączyć nagłówki plików ZIP i rekord katalogu centralnego. Zapoznaj się ze specyfikacją formatu gzip i specyfikacją formatu ZIP .
cat file1.gz file2.gz file3.gz > allfiles.gz
. To naprawdę takie proste :)cat
odpowiedź, ale z dodatkowymi metadanymi. Możesz później rozpakować je, aby uzyskać oryginalne nazwy plików, a następnie rozpakować wszystkie lub tylko kilka w razie potrzeby.zcat
dekompresuje swoje dane wejściowe, dzięki czemu otrzymasz zdekompresowane wyjście z.gz
rozszerzeniem.Oto, co
man 1 gzip
mówi o twoich wymaganiach.Nie trzeba dodawać, że
file1
można go zastąpićfile1.gz
.Musisz to zauważyć:
Tak więc, aby zebrać wszystkich członków indywidualnie, będziesz musiał użyć czegoś dodatkowego lub napisać, jeśli chcesz to zrobić.
Jednak jest to również omówione na stronie podręcznika.
źródło
Po prostu użyj kota. Jest bardzo szybki (dla mnie 0,2 sekundy za 500 MB)
Następnie możesz przeczytać dane wyjściowe za pomocą zcat, aby upewnić się, że są ładne:
Wypróbowałem drugą odpowiedź, „gz -c”, ale skończyło się na śmieciach podczas używania plików spakowanych już gzipem jako danych wejściowych (wydaje mi się, że to dwukrotnie je skompresowało).
PV:
Jeszcze lepiej, jeśli go masz, `` pv '' zamiast kota:
Daje ci to pasek postępu, ponieważ działa, ale robi to samo, co cat.
źródło
Możesz utworzyć plik tar z tych plików, a następnie spakować go gzipem, aby utworzyć nowy plik gzip
źródło