68

У меня есть 100 файлов: cvd1.txt , cvd2.txt ... cvd100.txt

Как gzip 100 файлов в один файл .gz так что после того как я gunzip его, я должен иметь cvd1.txt cvd2.txt ... cvd100.txt отдельно?

6 ответов6

77

Вы хотите , чтобы tar файлы вместе и gzip результирующий архивный файл.

tar cvzf cvd.tar.gz cvd*.txt

Чтобы распаковать tar-файл gzip'd, вы должны сделать:

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

Это позволит извлечь ваши файлы из каталога /path/to/parent/dir

35

если у вас есть почтовый индекс,

zip myzip.zip cvd*.txt

Не нужно tar их в первую очередь.

20

Вы захотите использовать tar, вот так:

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

tar объединяет файлы, а gzip выполняет сжатие.

Quoth the gzip manpage:

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

12

Gzip сам по себе ничего не знает о файловой структуре. Чтобы сделать то, что вы хотите, вам нужно сначала поместить файлы в какой-нибудь контейнерный файл (например, структуру tar или аналогичный), а затем распаковать его. Для этого у tar есть переключатели z и j (для bzip2) на платформах GNU.

4

Вы можете сделать это с помощью:

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
0

Чтобы сжать несколько файлов с разными шаблонами, мы могли бы это:

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

это добавит все файлы .yml, начинающиеся с Алисы, из любого подкаталога и добавит все файлы .json, начинающиеся с Боба, из любого подкаталога.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .