如何在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