linux系统下有多重多样的压缩格式,下面介绍怎么使用tar,gzip,bzip2等命令进行打包压缩和解压的工作。

打包和压缩的区别

之所以要先介绍打包和压缩的区别,是因为大家会误以为tar命令是用来压缩或者解压的,事实上并不完全正确,tar主要是一个打包或者解包的命令,但是本身融合了一些压缩和解压命令在tar的选项中,所以可以对某些格式[.tar,.tar.gz,.tar.bz2]文件可以压缩和解压),因为一些压缩命令只能对一个文件进行压缩,所以我们把多个文件打包成一个文件有利于我们进行压缩以及网络传输。

tar命令打包压缩和解压

格式
主要功能(只能有一个) optiona(下面的参数可有任意条) -f [必需的,最后一个参数] 压缩包全称(包括后缀名)
-c (compress)压缩 -z 压缩或解压 .tar.gzip文件 file.tar.gzip
-t 查看包的内容 -Z 压缩或解压 .tar.Z文件 file.tar.Z
-r 向压缩包追加文件 -j 压缩或解压 .tar.bz2文件 file.tar.bz2
-u (update)更新原压缩包d文件 -O压缩或解压到标准输出
-x (extrate)解压 -v 显示所有过程

事实上,-z,-Z、-j 是在打包之后使用了 gzip、compress、ncompress、bzip2三个命令

其他辅助选项 
1
2
3
4
5
6
7
8
9
10
11
12
13
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。
压缩
命令 作用 压缩包后缀
tar -cf file.tar *.jpg 压缩当前目录所有jpg文件到 file .tar
tar -czf file.tar.gzip *.jpg 压缩当前目录所有jpg文件到 file .tar.gzip
tar -cjf file.tar.bz2 *.jpg 压缩当前目录所有jpg文件到 file .tar.bz2
tar -cZf file.tar.Z*.jpg 压缩当前目录所有jpg文件到 file .tar.Z
解压
命令 作用
tar -xf file.tar -C /home/ 把file.tar解压到/home/目录
tar -xzf file.tar.gzip 把file解压到当前目录
tar -xZf file.tar.Z 把file解压到当前目录
tar -xjf file.tar.bz2 把file解压到当前目录

其他功能

命令 作用
tar -uf file.tar new.txt 把更改后的new.txt替换原来压缩包中的未更改的
tar -tf file.tar 查看file包中的文件
tar -rf file.tar add.txt 把add.txt新增到file包中

bzip2,gzip,zip和rar

后缀 压缩 解压
.bz2 bzip2 file 或 bzip2 -z file (默认删除被压缩的文件,-k保留) b
.gz gzip -c 或 gunzip -c (默认删除被压缩的文件 -k 保留) gzip -d 或 gunzip
.rar rar a file.rar *.jpg unrar e file.rar
.zip zip file.zip *.jpg unzip file.zip
.Z compress file uncompress file.Z

综合其他格式的压缩和解压

后缀 压缩 解压
.tar tar -cf tar -xf
.tar.gzip tar -czf tar -xzf
.tar.bz2 tar -cjf tar -xjf
.tar.Z tar -cZf tar -xZf
.Z (少见) compress uncompress
.rar rar a unrar e
.zip zip unzip
.gz rar gzip -d 或 gunzip
.bz2 bzip2 bzip2 -d 或 bunzip2

压缩的时候一般格式为 命令 -选项 压缩后的文件名 待压缩文件列表 ,而 bzip2和gzip例外,格式为命令 -选项 待压缩文件列表 ,然后删除被压缩的文件,如果要保留,需要加-k(keep)选项