Linux shell命令用法及常见用例之tar命令

2019-10-09 18:24:21刘景俊
<日期格式>或–newer=<日期时间>只将较指定日期更新的文件保存到备份文件里 –exclude=<范本样式> 排除符合范本样式的文件

 

什么是“文件压缩”?

我们知道,在计算机系统中文件的内容是信息,信息实际上就是一个由值0和值1组成的位(又称为比特)序列,8个位被组织成一组,称为字节。一般来说,一个字节的8位是没有被全部利用起来的,这些没有被利用的位占据了一个文件的大部分空间,而“文件压缩”就是利用复杂的计算方式,将这些没有利用的空间腾出来,以让文件占用的空间变小。

简单来说,「压缩」就是把文件中没有完全填满的空间填满。压缩过的文件不能直接被操作系统所使用,因此,「解压缩」就是指把文件「还原」为未压缩之前的模样。压缩前与压缩后的文件所占用的磁盘空间大小之比就是「压缩比」。
常见的压缩格式

Linux 中常见的压缩格式有:

*.Z:compress 程序压缩的文件。
*.gz:gzip 程序压缩的文件。
*.bz2:bzip2 程序压缩的文件。
*.tar:tar 程序打包的数据,没有被压缩过。
*.tar.gz(简写为 .tgz):tar 程序打包的数据,经过 gzip 的压缩。
*.tar.bz2(简写为 .tbz2):tar 程序打包的数据,经过 bzip2 的压缩。

上面的压缩格式中,主要是gzip和bzip2两个压缩命令,它们是GNU计划的中的一部分,在此之前是compress命令,但它已经不再流行了。bzip2比gzip的压缩比很好,不过bzip2通常只能针对一个文件来压缩和解压缩。如果是这样的话,压缩整个开发环境目录就太繁琐了。

因此tar命令就出现了,tar不是一个 “压缩命令”,而是一个“打包命令”。也就是说,tar可以把很多文件「打包」成一个文件,甚至连目录也可以进行打包。一开始tar命令的确是不支持压缩的功能,后来GNU计划为了提供给使用者更方便并且更加强大的压缩与打包功能,就把整个tar与压缩的功能结合在一起了。

仅仅打包起来的tar文件俗称tarfile文件,经过压缩的tar文件叫做tarball文件。

全能的 tar 命令

概要

tar可以将多个目录或文件打成一个大文件,同时支持gzip/bzip2

归档:tar {-c} [option…] -f destination source

追加归档:tar {-r | -u} -f source [option…] destination

解压:tar {-t | -x} -f source [option…] -C destination

最简单的使用 tar 只要记住下面的方式:

压缩:tar -jcv -f filename.tar.bz2 被压缩的文件或目录名称 查看文件:tar -jtv -f filename.tar.bz2 解压缩:tar -jxv -f filename.tar.gz -C 解压到哪里