Як gzip кілька файлів в один gz файл?


74

У мене є 100 файлів: cvd1.txt, cvd2.txt...cvd100.txt

Як до gzip100 файлів в один .gzфайл, щоб після того, як я gunzipйого, мав мати cvd1.txt, cvd2.txt... cvd100.txtокремо?

Відповіді:


40

якщо у вас є блискавка,

zip myzip.zip cvd*.txt

Не потрібно tarїм спочатку.


1
@ Kurumi - Чи розпізнають такі програми Windows, як Winzip або 7-zip файли .zip?

1
@Tony. Я вірю, що вони так і роблять. Я протестував 7-zip версію Linux з zip і міг витягнути. Якщо ви хочете, є також GNU zip для windows.

Ви втрачаєте zgrep, zcmp, zdiffі всі види інструментів , які можуть працювати на трубах за вашим вибором , НЕ потокового формату , який називається ЗІПом. Користувачі електроенергії використовують труби.
Танкмен 六四

83

Ви хочете, щоб tarваші файли разом і gzipотриманий файл tar.

tar cvzf cvd.tar.gz cvd*.txt

Щоб зняти файл gzip'd tar, ви зробите:

tar xvzf cvd.tar.gz -C /path/to/parent/dir

Це дозволить витягнути ваші файли під /path/to/parent/dirкаталог


6
якщо ви назвали файл із розширенням .tgz, (скорочено для tar gz), програми Windows розпізнають його як щось, що winzip тощо може обробити як є. З повагою до SiegeX за ваші 10 к!
обстріл

23

Ви хочете використовувати дьоготь, наприклад:

tar -czvf file.tar.gz cvd*.txt

tar збирає файли разом, тоді як gzip виконує стиснення.

Загладьте сторінку gzip:

Якщо ви хочете створити єдиний архівний файл з декількома членами, щоб потім члени могли бути вилучені самостійно, скористайтеся архіватором, таким як tar або zip. GNU tar підтримує опцію -z прозоро викликати gzip. gzip розроблений як доповнення до смоли, а не як заміна


13

gzip сам по собі нічого не знає про структуру файлів. Щоб зробити те, що ви хочете, потрібно спочатку помістити файли в якийсь файл контейнера (наприклад, тар-структура або подібне), а потім gzip. tar має перемикачі z та j (для bzip2) на платформах GNU для цього.


2
Перемикач насправді 'z' ('x' - для витягу). Приємно, що ви згадали 'j' / bzip2 - набагато жорсткіше стиснення.

5

Ви можете зробити це за допомогою:

gzip my_final_filename.gz my_first_file my_second_file ... my_last_file

gunzip my_final_filename.gz

або

zip my_final_filename.zip my_first_file my_second_file ... my_last_file

unzip my_final_filename.gz

або

tar cvzf my_final_filename.tar.gz my_first_file my_second_file ... my_last_file

tar -czvf my_final_filename.tar.gz

Я не думаю, що ваша перша команда працює. Принаймні загалом. Якщо він працює для певної оболонки, слід вказати його. Я б сказав, якщо мені вистачить представника.
DPM

@DPM вірно, gzip/gunzipкоманди не спрацювали, він поверне помилкуgzip: my_final_filename.gz: No such file or directory
Bilal

1

Для стиснення декількох файлів з різними візерунками ми могли б:

tar -czvf deploy.tar.gz **/Alice*.yml **/Bob*.json

це додасть усі файли .yml, який починається з Аліси з будь-якого підкаталогу, і додасть усі файли .json, який починається з Боба з будь-якого підкаталогу.


Вже відповів superuser.com/a/334830/107419
prayagupd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.