如何在Linux中gzip一个目录

时间:2020-03-05 15:26:58  来源:igfitidea点击:

如何在Linux中gzip目录?
它绝对没有使用gzip命令,因为如果我们尝试使用gzip命令压缩文件夹,我们将看到此错误:

gzip: target is a directory -ignored

gzip命令无法压缩目录,因为基本上,gzip在各个文件上工作,而不是整个文件夹。

使用tar命令gzip一个目录

而不是尝试直接压缩文件夹,而是首先应该使用tar。

tar命令将所有文件整理为一个存档文件。
它没有压缩文件本身。

如果将tar与Gzip组合,则tar命令将从文件夹中创建一个归档文件,然后gzip将压缩此存档文件。

好处是我们可以使用Z选项在一个单个命令中执行这两个步骤。
该命令看起来像这样:

tar -zcvf output_file_name directory_to_compress

让我向我们解释上面命令中使用的选项:

  • z - 告诉tar它正在处理gzip文件
  • c - 告诉tar创建存档文件
  • v - 详细模式显示正在处理的文件
  • f - 输出是一个文件

使用tar和gzip来压缩文件夹的示例

假设我在目录中有一堆文件。
如果我使用du命令获取目录的大小,它是204 kB。

du -sh sample_text_files
204K    sample_text_files

现在,如果我gzip压缩文件夹:

tar -cvzf sample_text_archive  sample_text_files
sample_text_files/
sample_text_files/sample_rar.rar
sample_text_files/test/
sample_text_files/dir2/
sample_text_files/dir2/services
sample_text_files/dir2/agatha.txt
sample_text_files/abhi-3.txt

现在,如果我使用LS命令检查压缩文件夹的大小,它几乎不会10 kB。

ls -lh sample_text_archive 
-rw-r--r-- 1 igi igi 9.6K Apr 11 11:41 sample_text_archive

使用tar和gzip命令时记住

使用tar命令时,应注意几件事:

在命令中提供文件名非常重要,否则我们会看到此错误:

tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.

如果我们根本不使用该选项-f,则仍将看到错误,这次会发生另一个错误。

tar: Refusing to write archive contents to terminal (missing -f option?)
tar: Error is not recoverable: exiting now