命令“ gzip”文件夹?


66

我是Mac命令提示符下的新手。如何在Mac OS X中创建文件夹的gzip?有人告诉我,如果要创建文件夹的gzip,则应先“ tar”它,然后再“ gzip”它。这个对吗?


1
这不是编程问题吗?您的帖子带有标记,objective-c但您在询问命令行。
rakuo15

Answers:


130

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

tar -czf folder_name.tar.gz folder_name /

如果您不想创建tar归档文件(可能只是想压缩一个文件),则可以直接使用gzip命令。

gzip file.txt

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


30
值得一提的选项是什么-czf之后tar是:c表明你要创建一个tar归档文件,z适用gzip于中间tar归档,并且f对于随后的最终文件名folder_name.tar.gz
fideli

13
警告:gzip file.txt替换原始文件。
佐尔坦

6
@Zoltán gzip -k file.txt用于“保留”(不删除)输入文件。
thohl '16

13

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

压缩方式

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

gzip filename.ext

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

gzip -c filename.ext > anotherfile.gz

我们还可以从标准输入进行压缩,因此我们可以压缩其他命令的输出。

cat filename.ext | gzip > anotherfile.gz

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

compress filename.ext

解压缩

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

gzip -d filename.ext.gz
gunzip filename.ext.gz

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

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

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

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

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

cat filename.ext.gz | zcat

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

cat filename.ext.gz | zcat > anotherfile

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

compress filename.ext
uncompress filename.ext

我希望您对我的指南有用:)


4

MacOS X是Unix,因此应该可以使用(在GNU / Linux上可以使用)

tar czvf compression.tar.gz文件夹

3

是的,您首先要对目录进行压缩。tar命令可以同时执行以下操作:

tar -czf archiv.tar.gz mydir/

提取档案:

tar -xzf archiv.tar.gz

3

要通过@taskinoor添加到答案中:如果您使用单个文件版本,又名

gzip file.txt

请注意,原始文件(file.txt)将被删除,而您只有file.txt.gz

我将其作为评论,但没有足够的业力来做到这一点:=)


1
gzip --keep file.txt将保留原始内容并创建file.txt.gz。请参阅gzip --help
2015年

1

是的,这是正确的。gzip只能压缩文件。tar目录内容编码成一个单一的文件,可以使用进一步压缩gzipbzip2lzma或其他任何东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.