Linux 下的解压缩命令
2019-09-30
关键字:压缩、解压缩、分卷压缩、tar
1、几种常用的压缩格式
tar
解包: tar xvf filename.tar
打包: tar cvf filename.tar dirname/
.tar.gz
解压:tar -zxvf filename.tar.gz
压缩:tar -zcvf filename.tar.gz dirnema1/ dirname2/
.bz2
解压:bzip2 -d filename.bz2
压缩:bzip2 -z filename
.tar.bz2
解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname/
.z
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar Zxvf filename.tar.Z
压缩:tar Zcvf filename.tar.z dirname/
.tar.xz
解压:tar xvJf filename.tar.xz
压缩:tar xcJf filename.tar.xz dirname/
.zip
解压:unzip filename.zip
压缩:zip -r filename.zip dirname/
2、分卷压缩
tar zcvf - filedir | split -d -b 100m - filename
这行命令的意思是将 filedir 目录以 .tar.gz 的格式进行压缩,但是不直接生成 .tar.gz 文件,而是将压缩后的流以管线 | 的形式传给 split 处理。
split 对流的处理方式就是将流分成若干个 100mb 的块,再以 filename 为名称前缀以数字序号作为后缀生成文件。split 的参数 -d 就表示以递增的数字序号作为后缀,若不加 -d 参数,则表示以递增的字母序列作为后缀,如 aa, ab, ac...
以下是一个实例:
假设现有一个目录有以下几个文件:
将这些文件以每 5kb 一个文件的形式分卷压缩成 .tar.gz 格式。
可以使用如下命令:
tar zcvf - Android.mk .gitignore GPIOAPI/ qtouchstarter/ | split -d -b 5k - myfile.tar.gz
执行完毕后可以看到当前目录下的文件结构如下图所示:
这就是分卷压缩了。
而分卷压缩文件的解压则如下所示:
cat myfile.tar.gz* > myfile.tar.gz
tar zxvf myfile.tar.gz
首先要将这些分卷压缩文件组合成一个完整的压缩文件,再使用普通的 tar 解压命令解压即可。