У меня есть 100 файлов: cvd1.txt
, cvd2.txt
... cvd100.txt
Как gzip
100 файлов в один файл .gz
так что после того как я gunzip
его, я должен иметь cvd1.txt
cvd2.txt
... cvd100.txt
отдельно?
Вы хотите , чтобы 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
если у вас есть почтовый индекс,
zip myzip.zip cvd*.txt
Не нужно tar
их в первую очередь.
Вы захотите использовать tar, вот так:
tar -czvf file.tar.gz cvd*.txt
tar объединяет файлы, а gzip выполняет сжатие.
Quoth the gzip manpage:
Если вы хотите создать один архивный файл с несколькими членами, чтобы впоследствии их можно было извлекать независимо, используйте архиватор, такой как tar или zip. GNU tar поддерживает опцию -z для прозрачного вызова gzip. gzip разработан как дополнение к tar, а не как замена
Gzip сам по себе ничего не знает о файловой структуре. Чтобы сделать то, что вы хотите, вам нужно сначала поместить файлы в какой-нибудь контейнерный файл (например, структуру tar или аналогичный), а затем распаковать его. Для этого у tar есть переключатели z и j (для bzip2) на платформах GNU.
Вы можете сделать это с помощью:
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
Чтобы сжать несколько файлов с разными шаблонами, мы могли бы это:
tar -czvf deploy.tar.gz **/Alice*.yml **/Bob*.json
это добавит все файлы .yml, начинающиеся с Алисы, из любого подкаталога и добавит все файлы .json, начинающиеся с Боба, из любого подкаталога.