Linux系统中常见的压缩包格式有*.zip、*.jar、*.7z、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz等。尤其以tar格式最为常见。
常见的压缩包格式.zip、.jar、.7z的用法如下:
zip格式 | 说明 | |
压缩 | zip –r压缩包文件名.zip源文件/目录名 | -r参数代表递归 |
解压 | unzip压缩包文件名.zip |
|
jar格式 | 说明 | |
压缩 | jar –cvf压缩包文件名.jar源文件/目录名 |
|
解压 | jar –xvf压缩包文件名 |
|
7z格式 | 说明 | |
压缩 | 7z a压缩包文件名.7z源文件/目录名 |
|
解压 | 7z x压缩包文件名.7z | 解压命令支持rar格式 |
接下来着重介绍最为常见的压缩包格式.tar、.tar.gz、.tar.bz2、.tar.xz。在介绍压缩与解压之前,先说明一下打包的概念。打包是将多个文件或目录打包成一个文件,以便于压缩。Linux下最常见的打包命令是tar,打出来的包称为tar包,即是.tar结尾的包。生成tar包后,就能用其他的压缩命令来压缩了。
先对带tar的压缩包格式做个简要说明总结:
格式 | 说明 |
*.tar | 打包文件,即将多个文件或目录打包成一个文件 |
*.tar.gz | 打包后经过gzip算法压缩后的文件 |
*.tar.bz2 | 打包后经过bzip2算法压缩后的文件 |
*.tar.xz | 打包后经过xz算法压缩后的文件 |
对tar命令的参数作简要说明总结:
参数 | 说明 |
-f, --file | 新包的文件名 |
-c,--create | 创建新的包 |
-x,--extract | 解包、提取 |
-v,--verbose | 详细信息,在压缩/解压的过程中显示文件 |
-t, | 列出包中所有的文件 |
-z, | 使用gzip、gunzip算法来压缩或解压 |
-j, | 使用bzip2、bunzip2算法来压缩或解压 |
-J, | 使用xz、unxz算法来压缩或解压 |
-p, | 使用原文件的原来属性 |
-P, | 使用绝对路径来压缩 |
-C, | 用来指定解包或解压后文件所在的目录 |
--exclude FILE | 压缩过程中不要将FILE打包 |
利用tar命令及其参数组合,既可用于打包/解包,又可用于压缩/解压。
【1】打包/解包
用法 | 命令 | 说明 |
打包 | tar -cvf fileall.tar file* | 将file1、file2、file3等文件打包,并在打包过程中显示文件 |
解包 | tar -xvf fileall.tar -C fileall | 解出fileall.tar包中所有的文件到目录fileall中 |
查看 | tar -tvf fileall.tar | 查看包中所有的文件 |
【2】压缩/解压
用法 | 命令 | 说明 | |
.tar.gz格式 | |||
压缩 | gzip fileall.tar | 利用已经打好包的文件直接压缩 | |
解压 | gunzip fileall.tar.gz | 将fileall.tar.gz压缩包解压为fileall.tar | |
打包并压缩 | tar zcvf fileall.tar.gz file* | 将文件file1、file2、file3打包并用gzip算法压缩为fileall.tar.gz文件 | |
解压 | tar zxvf fileall.tar.gz -C /home | 将fileall.tar.gz压缩包解压到/home目录下 | |
.tar.bz2格式 | |||
压缩 | bzip2 fileall.tar | 利用已经打好包的文件直接压缩 | |
解压 | bunzip2 fileall.tar.bz2 | 将fileall.tar.bz2包解压成fileall.tar | |
打包并压缩 | tar jcvf fileall.tar.bz2 file* | 将文件file1、file2、file3打包并用bzip2算法压缩为fileall.tar.bz2文件 | |
解压 | tar jxvf fileall.tar.bz2 -C /home | 将fileall.tar.bz2文件解压到/home目录 | |
.tar.xz格式 | |||
压缩 | xz fileall.tar | 利用已经打好包的文件直接压缩 | |
解压 | unxz fileall.tar.xz | 将fileall.tar.xz包解压成fileall.tar | |
打包并压缩 | tar Jcvf fileall.tar.xz file* | 将文件file1、file2、file3打包并用xz算法压缩为fileall.tar.xz文件 | |
解压 | tar Jxvf fileall.tar.xz -C /home | 将fileall.tar.xz文件解压到/home目录下 | |
附:
默认情况下,将压缩文件解压后的所有文件都与压缩文件在同一个目录下,所以一般情况下我们都需要自己指定解压目录。
一般从github或其他源码站下载的压缩文件,如*.tar.gz、*.tar.bz2等,其本身都是自带目录的,所以解压时会解压出同名目录,而不需要指定解压目录。