压缩和解压缩
最早的: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选项用的
# 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