进一步阅读

进一步阅读

我想将两个或多个文件 gzip 压缩成一个文件,我检查了一下但两者都有类似这样的文件:n1.txt,,n2.txt...但我的文件名完全不同,例如:,,file.mp4我想将它们全部 gzip 并将输出放入一个文件中。这也没有帮助:bar.txtfoo.jpeg

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

我得先把它们涂上焦油吗?

还有一个问题:在 tar 文件中,我们可以使用以下命令无需解压缩即可查看内部文件:

tar -tvf filename.tar

有没有办法使用 gzip 或 bzip2 来做到这一点?

答案1

例如,与 ZIP 不同,RAR 或 7-Zipgzip只能压缩一个文件。正如您已经注意到的,有一个tar程序可以将多个文件序列化为一个文件,使它们准备好进行gzip。传统的 Unix 理念倾向于使用多个更简单、更专业的工具,而不是一个单一而复杂的工具。在这种情况下,它会导致连续使用targzip,从而产生一个.tar.gz(或.tgz)文件。

然而,GNUtar包含了只用一个命令来压缩传统使用-z结果的选项。targzip

.tar.gz文件大多使用以下选项创建-czvf

  • c创建新档案
  • g zip (替代:j用于 bzip2,J用于 xz)
  • verbose(列出已处理的文件;可选)
  • 输出f文件(以下参数指定输出文件)

在您的示例中,您可以使用以下命令:

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

有没有办法不用 gzip 或 bzip2 解压缩就可以查看内部文件?

是的,您的命令也适用于.tar.gz文件:

tar -tvf test.tar.gz

进一步阅读

答案2

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).

是的,您可以用同样的方式观看压缩档案。

相关内容