Linux文件的压缩
Posted tryhardwy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件的压缩相关的知识,希望对你有一定的参考价值。
Linux下有很多的命令可以实现文件的压缩,也使得存在各种扩展名的压缩文件。以前看到这些命令和参数,真是不知道该选哪个好,所以今天系统的学习了一下,也总结一下,希望也能对看到这篇博客的同学有所帮助。
文章主要有三个部分,什么是文件压缩、压缩的命令与参数、打包与压缩的命令与参数。
一、文件压缩
什么是文件压缩?通俗点说就是较大的文件经过压缩技术以后,文件就变小了。就好比买了一袋薯片,放了气之后,整个袋子就变小了。那么放气的这个过程就是“压缩”。
那么我们计算机的文件中,如何将这些气放出去呢?目前我们使用的计算机系统中都是使用byte单位来计量的, 1byte = 8bit,每一个bit都是0或者1,那么如果要记录一个数字1,我们就需要1byte的长度来表示,即0000 0001 。这里我们就能看到,单独的表示1来说,1位就可以了,前面的7位0都是填充用的,这些位本可以空下来,压缩做的就是将这些本可以空下来,却利用0来填充占位的bit清理出来,以更简洁的方式来表示1的数值。这只是压缩技术的一种,还有其他的比如,100个连续的1,那么我们压缩后可能会纪录为“100个1“,而不是真正的100个“1”。
二、压缩的命令与参数
知道了是什么是文件压缩,那么来具体看一下linux中压缩的命令与参数。
目前常用的压缩命令有两种,gzip和bzip2 。
1、gzip
gzip可以说是目前应用最广的压缩命令了。gzip压缩后的文件是 *.gz 。
参数:
-c :将压缩的数据以标准输出形式输出,即输出到屏幕上;
-d :解压缩的参数;
-k :保留原文件,压缩后存在两份文件,原文件及压缩文件;
-v :显示出文件名和每个文件的压缩比;
-# :压缩等级,-1最快,压缩比最低,-9最慢,压缩比最高。
对于压缩的文本文件,可以不经过解压缩,利用zcat命令直接查看文件内容。
2、bzip2
bzip2是新一代的压缩技术,压缩比比gzip要高。压缩后的文件是 *.bz2 。参数与gzip的参数与gzip几乎相同, 但是多了一个显式的压缩参数-z。
三、打包与压缩的命令与参数
上一节所说的压缩命令都是对单一文件来进行压缩,那么如果想对文件夹进行压缩,就需要用到打包 tar 命令。
tar命令是将多个目录或文件打包成一个大文件,本身不具有压缩的功能,但是可通过gzip/bzip2 的支持,将大文件同时进行压缩操作。
参数:
1、功能参数(命令中只能出现其中一个功能)
-c :新建打包文件;
-t :查看打包文件所包含的文件名;
-x : 解打包文件;
-u :更新打包文件。
2、支持压缩参数
-j :通过bzip2 的支持进行压缩/解压缩,文件名最好为 *.tar.bz2 ;
-z :通过gzip的支持进行压缩/解压缩,文件名最好为 *.tar.gz。
3、其它参数
-v :显示正在处理的文件;
-f :后接打包后文件的filename;
-C :后接特定的目标目录。
举例:
压缩: tar -jcv -f yourfilename.tar.bz2 yourfilename
查看: tar -jtv -f yourfilename.tar.bz2
解压缩: tar -jxv -f yourfilename.tar.bz2 -C yourdirectory
以上是关于Linux文件的压缩的主要内容,如果未能解决你的问题,请参考以下文章