Linux下的压缩和解压缩工具比较多,有时经常记不住,这里给大家汇总一下,方便大家查阅。
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
Linux下常见的几个压缩文件扩展名为:
*.zip zip程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.xz xz程序压缩的文件
*.tar tar打包,未压缩
*.tar.gz tar打包,gzip压缩
*.tar.bz2 tar打包,bzip2压缩
*.tar.xz tar打包,xz压缩
以下举例说明各类型的文件的压缩、打包和解压的命令。本文只介绍最简单的命令,有这些基本足够日常使用,如有特殊要求,可以查看相应命令的说明文档。
1.zip
#将目录下的test1.txt和test2打包为test.zip包:
zip -r -o test.zip test1.txt test2
-r表示递归,目录里的所有文件和文件夹都打包;-o指定输出包的名字;最后是需要打包的文件列表,也可以用通配符。
#将test.zip解压:
unzip test.zip
#将test.zip解压,并放到new目录中:
unzip test.zip -d new
2.gz
#将test1.txt压缩:
gzip test1.txt
此时会生成test1.txt.gz文件,而源文件会消失。
#将test1.txt.gz解压:
gzip -d test1.txt.gz
3.bz2
bz2的用法与gzip几乎相同,但是压缩比更高。
#将test1.txt压缩:
bzip2 test1.txt
此时会生成test1.txt.bz2文件,而源文件会消失。
#将test1.txt.gz解压:
bzip2 -d test1.txt.bz2
4.xz
xz的用法与bz2和gzip几乎相同,但是压缩比更高。
#将test1.txt压缩:
xz test1.txt
此时会生成test1.txt.xz文件,而源文件会消失。
#将test1.txt.gz解压:
xz -d test1.txt.xz
5.tar
tar实际上是一个打包和解包的工具,其用法为:
打包:tar -cvf 待建立的新文件名 被打包文件列表
解包:tar -xvf 已有的tar文件 [-C 目标目录]
选项含义:
-c 建立打包文件
-x 解包
-v 打包或解包过程中正在处理的文件名显示出来
-f 后跟.tar文件
6.tar.gz、tar.bz2、tar.xz
这三种文件实际上是打包与压缩的组合,因此,可以看作是在.tar文件的基础上用上文提到的三种压缩工具压缩后生成的。同样,解压并解包也可分两步进行,先解压后解包。而实际操作中可一步实现压缩或解压:
打包:tar [-z|-j|-J] -cvf 待建立的新文件名 被打包文件列表
解包:tar [-z|-j|-J] -xvf 已有的tar文件 [-C 目标目录]
是在打包的基础上加上了-z、-j或-J选项,其中:
-z 通过gzip压缩或解压,文件名常为xxx.tar.gz
-j 通过bzip2压缩或解压,文件名常为xxx.tar.bz2
-J 通过xz压缩或解压,文件名常为xxx.tar.xz
具体说来:
压缩打包:
tar -zcvf xxx.tar.gz 被打包文件列表
tar -jcvf xxx.tar.bz2 被打包文件列表
tar -Jcvf xxx.tar.xz 被打包文件列表
解压:
tar -zxvf xxx.tar.gz
tar -jxvf xxx.tar.bz2
tar -Jxvf xxx.tar.xz
此外经常还会碰到tgz、tbz等格式的文件,其实是tar.gz和tar.bz2的缩写,操作方法相同。
7.rar
最后提一下rar文件。在Linux下rar并不常见,但有时也会碰到。Linux本身是不支持rar文件的,因此需要额外安装rar的压缩和解压工具。网址为:
www.rarlab.com
从Download列表中下载RAR 5.71 for Linux x64,得到一个tar.gz的压缩包,解压后得到rar目录,进入目录直接make即可。
压缩:rar a xxx.rar 被打包文件列表
解压:unrar e xxx.rar