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选项:归档的文件名
杠可以不加,但f一定要放到最后,因为后面的参数:归档文件名是给f选项用的
# lsanaconda-ks.cfg initial-setup-ks.cfg messages messages.xz[root@localhost ~]# tar cf me.tar messages messages.xz[root@localhost ~]# lsanaconda-ks.cfg initial-setup-ks.cfg messages messages.xz me.tar
2,查看归档里的文件列表
-t选项:查看归档里的文件列表
# tar tf me.tarmessagesmessages.xz
3,展开归档
-x选项:展开归档
不使用-C就是展开在当前目录,使用-C展开到指定目录。
# tar xf me.tar -C /tmp# ls /tmp/messagesmessages.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![](https://img2018.cnblogs.com/blog/1414315/201811/1414315-20181106214320230-961379709.jpg)# 本人微信:xiaoshitou5854