'gzip'文件夹的命令?

thn*_*iss 75 mac compression command-line gzip macos

我是 Mac 命令提示符的新手。如何在 Mac OS X 中创建文件夹的 gzip?一些人告诉我,如果你想创建一个文件夹的 gzip,你应该先“tar”它,然后“gzip”它。这样对吗?

小智 144

tar 是存档工具,gzip 是压缩工具。为了压缩一个完整的目录,首先你需要将它归档到一个文件中。这就是 tar 的工作。然后压缩存档文件。您可以使用适当的选项在单个 tar 命令中完成这两项任务。

tar -czf 文件夹名称.tar.gz 文件夹名称/

如果您不想制作 tar 存档(可能只想压缩单个文件),那么您可以直接使用 gzip 命令。

gzip 文件.txt

它将创建一个名为 file.txt.gz 的压缩文件

  • 值得一提的是`tar`后面的`-czf`选项是干什么用的:`c`表示你要创建一个tar存档,`z`在中间的tar存档上应用`gzip`,`f`用于随后的最终文件名`folder_name.tar.gz`。 (32认同)
  • 警告:`gzip file.txt` 替换原始文件。 (16认同)
  • @Zoltán 使用`gzip -k file.txt` 来“保留”(不要删除)输入文件。 (8认同)

小智 16

如果有人在搜索“Mac 中的 gzip”时仍然发现这个问题,我写了一个指南,它可能对其他人有用。它是这样的:

压缩

最基本的命令将压缩文件filename.ext,然后将其替换filename.ext.gz为同一目录中的文件。

gzip filename.ext
Run Code Online (Sandbox Code Playgroud)

如果您不想丢失原始文件,则需要将 的输出通过管道gzip -c传输到文件。

gzip -c filename.ext > anotherfile.gz
Run Code Online (Sandbox Code Playgroud)

我们也可以从标准输入压缩,所以我们可以压缩其他命令的输出。

cat filename.ext | gzip > anotherfile.gz
Run Code Online (Sandbox Code Playgroud)

OS X 还带有compressuncompress命令。它们使 gzip 变得“更智能”,因为如果文件在压缩过程后会增长,它不会压缩文件。以下命令在同一目录中替换filename.extfilename.ext.Z

compress filename.ext
Run Code Online (Sandbox Code Playgroud)

解压

要将文件恢复到未压缩的自然状态,您可以使用 gzip 或其他包装器。gzip 的解压方式是用-d标志调用的。该模式将替换该文件filename.ext.gzfilename.ext在同一目录。还有一个名为的快捷方式gunzip可以执行相同的操作。

gzip -d filename.ext.gz
gunzip filename.ext.gz
Run Code Online (Sandbox Code Playgroud)

我们还可以将解压后的文件通过管道传输到标准输出,以将其保存到另一个文件中。

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile
Run Code Online (Sandbox Code Playgroud)

将 gzip 的内容读取到标准输出的另一种快速方法是zcat,它与调用基本相同,gzip -cd但您可以调用多个文件并将它们连接起来,就像cat命令连接文本文件一样。唯一的缺点是您的文件需要后缀.Z后缀才能工作...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z
Run Code Online (Sandbox Code Playgroud)

但不要害怕!zcat它仍然有用,因为它可以从标准输出解压。因此,您基本上可以将文件通过管道传输到 zcat,以便在终端窗口中将它们解压缩。

cat filename.ext.gz | zcat
Run Code Online (Sandbox Code Playgroud)

如果您需要非常快速地检查文件的内容,这非常有用,您甚至可以将 zcat 的输出保存到文件中,同样简单。

cat filename.ext.gz | zcat > anotherfile
Run Code Online (Sandbox Code Playgroud)

uncompress包装的工作原理是gzip -cd,但它看起来与.Z扩展名的文件,以取代他们在当前目录,所以你只需要指定要恢复的文件名,但它是正常的,如果你用.Z扩展名调用它,如程序会忽略它。

compress filename.ext
uncompress filename.ext
Run Code Online (Sandbox Code Playgroud)

我希望你觉得我的指南有用:)


jcu*_*bic 5

MacOS X 是 Unix,所以这应该可以工作(在 GNU/Linux 上工作)

tar czvf 压缩.tar.gz 文件夹


小智 5

是的,您必须先 tar 目录。tar-命令可以执行以下两项操作:

tar -czf archiv.tar.gz mydir/
Run Code Online (Sandbox Code Playgroud)

提取您的档案:

tar -xzf archiv.tar.gz
Run Code Online (Sandbox Code Playgroud)