Linux文件的打包和压缩

阅读 1.7k
标签: Linux

在使用Linux时,我们常常会遇到到以.tar.gz.tar.xz.tgz结尾的文件,那这些文件到底是什么东西呢?怎么使用它们呢?本篇将解答这个疑惑。

压缩:gzip

.gz表示该文件是使用gzip压缩的,.xz表示是用xz来压缩的。在Linux系统中,常用的压缩命令有gzip、xz等,这里以最常用的gzip来进行说明。

我准备了一个短小精悍的小例子来介绍gzip工具。

首先,我们找一个文件来进行压缩,通过ls命令在/etc目录下找一个最大的文件:

ls -ldSr /etc/*

上面ls命令中,使用了-ldSr参数,其中各参数含义如下:

  • -l: use a long listing format
  • -d: list directories themselves, not their contents
  • -S: sort by file size
  • -r: reverse order while sorting

发现最大的文件是services,大小为670KB,那就用这个文件来进行压缩吧:


为了不影响原本的services文件,我们将其复制到/tmp目录下:

cd /tmp
cp /etc/services ./

接下来,我们就对/tmp/services这个文件进行压缩,压缩的命令其实很简单:

gzip -v services

-v参数表示verbose,这个参数会显示压缩文件的压缩比。执行结果如下:


其中79.7%表示压缩比,即文件的大小减少了79.7%,这个压缩比已经非常厉害了。同时,得到了一个压缩文件services.gz,有趣的是,原来的services文件消失了。如果想保留之前的services文件,可以:

gzip -c services > services.gz

-c表示Write output on standard output; keep original files unchanged

这样,原始文件services就不会消失了,通过 > 符号输出到指定的文件。说完了压缩,那解压缩怎么做呢?

还是用gzip命令,搭配-d参数(decompress):

gzip -d services.gz

注意,无论是压缩或解压缩,都是围绕gzip这个命令来展开的,根据使用的不同,变换下参数就可以了。

打包:tar

既然有了压缩,那为啥还需要打包呢?

这是因为压缩一般是针对单个文件,如果有多个文件或文件夹,就需要将其先打包为一个大文件,这样再使用压缩工具来进行压缩。

在Linux中,tar命令是用来打包的,同时也集成了压缩功能,所以实际上,我们最常用的就是这个tar命令,我们来看一个具体的例子。

打包并压缩

在/tmp目录下有一个demo文件夹,demo文件夹中包含aaa和bbb二个文件,下面将/tmp/demo文件夹进行打包并压缩:

tar -zcvf /tmp/demo.tar.gz /tmp/demo

其中,各参数含义如下:

  • -z:使用gzip进行压缩
  • -c:create,创建打包文件
  • -v:verbose
  • -f:file,后面接文件

执行完成后,会在/tmp目录下生成demo.tar.gz文件。

查看压缩文件

如果要查看已经打包的压缩文件,可以:

tar -ztvf /tmp/demo.tar.gz

其中,-t参数表示:list the contents of an archive。

解压缩

最后,我们来看看解压缩,这个命令可能是我们最常用的,因为很多时候,我们从网站上下载归档文件后,需要执行解压命令。比如,对上面的归档文件进行解压:

tar -zxvf /tmp/demo.tar.gz
  • -x表示extract,extract files from an archive,从归档中提取文件。

总结

对于日常应用来说,tar的解压命令是最常用的,记住tar命令的解压参数-zxf在实际工作中非常有必要。

参考

  • 《鸟哥的Linux私房菜,基础学习篇(第四版)》,鸟哥著
最后编辑于: 2022-06-28

评论(0条)

(必填)
复制成功