Linux 压缩和解压缩
最早的:compress/uncompresse 文件名后缀:.Z
然后是:gzip/gunzip 文件名后缀:.gz
很久一段gzip是linux的标准压缩和解压缩算法了
然后是:bzip2/bunizip2 文件名后缀:.bz2
大文件的压缩比比gzip大一点,但是小文件的压缩比还没有gzip大,所以没能撼动gzip的地位
然后是:xz/unxz 文件名后缀:.xz
压缩比显著提高,撼动了gzip的地位
lzma/unlama 文件名后缀:.lzma
最通用的(所以操作系统都支持):zip/unzip
Linux 归档:上述压缩工具,只能对文件压缩,不能对目录压缩。要想对目录压缩,必须要归档后,再对归档文件压缩。
- tar,cpio
gzip/gunzip/zcat
1,压缩:gzip file
压缩完成后,会自动删除原文件
# ll -h messages -rw-------. 1 root root 915K Feb 11 22:05 messages [root@localhost ~]# gzip messages [root@localhost ~]# ll -h messages.gz -rw-------. 1 root root 167K Feb 11 22:05 messages.gz
2,解压缩:gzip -d或者gunzip
解压缩完成后,会自动删除压缩文件
# gunzip messages.gz [root@localhost ~]# ll -h messages -rw-------. 1 root root 915K Feb 11 22:05 messages # gzip -d messages.gz [root@localhost ~]# ll -h messages* -rw-r--r--. 1 root root 915K Feb 11 22:06 messages
3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9
# gzip -9 messages [root@localhost ~]# ll -h messages.gz -rw-r--r--. 1 root root 164K Feb 11 22:06 messages.gz
4,压缩后保留原来的文件:gzip file -c > zxx.gz
# gzip -c messages > messages.gz [root@localhost ~]# ll -h messages* -rw-------. 1 root root 915K Feb 11 22:05 messages -rw-r--r--. 1 root root 167K Feb 11 22:06 messages.gz
5,不解压缩,直接查看压缩文件里的内容:zcat messages.gz
bzip2/bunzip2/bzcat
1,压缩:bzip2 file
压缩完成后,会自动删除原文件
# ll -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages # bzip2 messages # ll -rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2
2,解压缩:bzip2 -d或者bunzip2
解压缩完成后,会自动删除压缩文件
# bzip2 -d messages.bz2 [root@localhost ~]# ll messages -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages # bunzip2 messages.bz2 [root@localhost ~]# ll -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9
# bzip2 -9 messages [root@localhost ~]# ll -rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2
4,压缩后保留原来的文件:gzip file -k
# bzip2 -k messages [root@localhost ~]# ll messages* -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages -rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2
5,不解压缩,直接查看压缩文件里的内容:bzcat messages.bz2
xz/unxz/xzcat和lzma/unlzma/lzcat
1,压缩:xz file
压缩完成后,会自动删除原文件
# xz messages [root@localhost ~]# ll -rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz
2,解压缩:xz -d或者unxz
解压缩完成后,会自动删除压缩文件
# xz -d messages.xz [root@localhost ~]# ll -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages # unxz messages.xz # ll -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9
# xz -9 messages [root@localhost ~]# ll -rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz
4,压缩后保留原来的文件:xz file -k
# xz -k messages [root@localhost ~]# ll -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages -rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz
5,不解压缩,直接查看压缩文件里的内容:xzcat messages.xz
归档
1,创建归档
-c选项:创建归档
-f选项:归档的文件名
-P选项:tar默认是找执行tar目录的当前目录下的文件。如果想归档别的目录下的文件或目录,必须加-P选项,然后加绝对路径
压缩/etc下所有文件,当前执行目录是/root
# pwd /root # tar Jcf etc3.tar.xz -P /etc
杠可以不加,但f一定要放到最后,因为后面的参数:归档文件名是给f选项用的
# ls anaconda-ks.cfg initial-setup-ks.cfg messages messages.xz [root@localhost ~]# tar cf me.tar messages messages.xz [root@localhost ~]# ls anaconda-ks.cfg initial-setup-ks.cfg messages messages.xz me.tar
2,查看归档里的文件列表
-t选项:查看归档里的文件列表
# tar tf me.tar messages messages.xz
3,展开归档
-x选项:展开归档
不使用-C就是展开在当前目录,使用-C展开到指定目录。
# tar xf me.tar -C /tmp # ls /tmp/ messages messages.xz
4,压缩归档文件
用gzip,bzip2,xz都可以压缩归档文件
# gzip me.tar # ll me.tar.gz -rw-r--r--. 1 root root 228051 Feb 12 08:53 me.tar.gz
归档并压缩
归档和压缩能一起做
1,归档后,以gzip算法压缩/解压缩
压缩:zcf
# tar zcf me3.tar.gz messages messages.xz # ll me3.tar.gz -rw-r--r--. 1 root root 228044 Feb 12 11:43 me3.tar.gz
解压缩:zxf
# tar zxf me3.tar.gz
2,归档后,以bzip2算法压缩/解压缩
压缩:jcf
# tar jcf me3.tar.bz2 messages messages.xz
解压缩:jxf
# tar jxf me3.tar.bz2
3,归档后,以xz算法压缩/解压缩
压缩:Jcf
# tar Jcf me4.tar.xz messages messages.xz
解压缩:Jxf
# tar Jxf me4.tar.xz
zip/unzip:归档且压缩
# zip me.zip messages messages.xz # unzip me.zip
c/c++ 学习互助QQ群:877684253
本人微信:xiaoshitou5854
来源:https://www.cnblogs.com/xiaoshiwang/p/12305745.html