gzip 2 файла в один файл

Я хочу сжать два или более файлов в один файл, я проверил это и это, но оба имеют такие файлы, как: n1.txt, n2.txt... но мои имена файлов совершенно разные, например: file.mp4, bar.txt, foo.jpeg и я хочу сжать их все и поместить вывод в один файл. Это тоже не помогло:

gzip -c file.mp4 > test.gz
gzip -c bar.txt >> test.gz

Должен ли я сначала смолить их?

И еще один вопрос: в tar-файлах мы можем смотреть внутренние файлы без распаковки, используя:

tar -tvf filename.tar

Есть ли способ сделать это с помощью gzip или bzip2?

2 ответа

Решение

В отличие от ZIP, RAR или 7-Zip, например, gzip можно сжать только один файл. Как вы уже заметили, есть tar программа, которая может сериализовать несколько файлов в один, что делает их готовыми к gzip, Традиционная философия Unix предпочитает использовать несколько более простых и более специализированных инструментов, чем один монолитный и сложный. В этом случае это приводит к использованию tar а также gzip последовательно, в результате чего .tar.gz (или же .tgz) файл.

Тем не менее, GNU tar включает в себя -z опция, которая сжимает результат традиционного tar с помощью gzip всего за одну команду.

.tar.gz файлы в основном создаются с использованием -czvf опции:

  • cсоздать новый архив
  • гzip (альтернативы: j для bzip2, J для хз)
  • verbose (список обработанных файлов; необязательно)
  • выход file (следующий аргумент указывает выходной файл)

В вашем примере вы можете использовать команду:

tar -czvf test.tar.gz file.mp4 bar.txt

Есть ли способ смотреть внутренние файлы без распаковки с помощью gzip или bzip2?

Да, ваша команда также работает для .tar.gz файл:

tar -tvf test.tar.gz

дальнейшее чтение

gzip это компрессор, а не архиватор, но он хорошо работает с tar

tar -cvzf file.tar.gz path-to-files-or-directories-to-compress

Увидеть man tar

Compression options
   -a, --auto-compress
          Use archive suffix to determine the compression program.

   -I, --use-compress-program=COMMAND
          Filter data through COMMAND.  It must accept the -d option,  for
          decompression.  The argument can contain command line options.

   -j, --bzip2
          Filter the archive through bzip2(1).

   -J, --xz
          Filter the archive through xz(1).

   --lzip Filter the archive through lzip(1).

   --lzma Filter the archive through lzma(1).

   --lzop Filter the archive through lzop(1).

   --no-auto-compress
          Do not use archive suffix to determine the compression program.

   -z, --gzip, --gunzip, --ungzip
          Filter the archive through gzip(1).

   -Z, --compress, --uncompress
          Filter the archive through compress(1).

И да, вы можете смотреть сжатые архивы таким же образом.

Другие вопросы по тегам