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
создать новый архив- г
z
ip (альтернативы:j
для bzip2,J
для хз) v
erbose (список обработанных файлов; необязательно)- выход
f
ile (следующий аргумент указывает выходной файл)
В вашем примере вы можете использовать команду:
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).
И да, вы можете смотреть сжатые архивы таким же образом.