Linux下文件的压缩与打包

2016-07-16 17:45:31 7544

 

一、压缩文件的原理

压缩技术,简而言之,我们可以将其想象成:其实文件里面有很多的"空间"存在,并不是完全填满的,而"压缩"技术就是将这些"空间"填满,从而使得整个文件占用量下降。

目前我们的操作系统数据中,都是使?字节(byte)单位来计量,不过事实上,计算机中最小的计量单位应该是位(bit),我们知道 1 byte = 8 bit。那么我们是怎么样对一些数据进行记录的呢?

例如我们只是需要记忆一?数字,即1这个数字,考虑到计算机所谓的二进制,如此一来, 1 会在最右边占据 1 bit ,而其他? 7 bits 将会自动的被填上 0 !其实在这样的例子中,那 7 bits 应该是 【空的】 才对!不过,为了要满足目前我们的操作系统数据的存取,所以就会将该数据转为 byte 的型态来记录。而压缩技术就是将这些没有使用到的空间""出来。

文件压缩以后可以降低磁盘的使用量,减少文件的大小。不过这些"压缩过的文件"无法直接被操作系统所使用,因此,若要使用这些被压缩过的文件数据,则必?将它"还原"成未被压缩的样子,这就是"解压缩"

 


实例一:将这个/etc目录下的文件全部打包成 /home/etc.tar
[root@uu home]# tar -cvf etc.tar /etc     -->> 这个命令只是用来打包,不进行压缩

[root@uu home]# tar -zcvf etc.tar /etc     -->> 打包以后,使用gzip 对其进行压缩
[root@uu home]# tar -jcvf etc.tar /etc    -->> 打包以后,使用bzip2 对其进行压缩
# 特别注意,在参数 f 之后的档案档名是自己取的,我们习惯上都用 .tar 来作为标识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
# 如果加 j 参数,则以 .tar.bz2 来作为扩展名

实例二:查看上述etc.tar 文件里有哪些内容
[root@uu ~]# tar -ztvf etc.tar
# 由于我们使用 gzip 压缩,所以要查阅该 tarfile 内的文件时,
# 就得要加上 z 这个参数

实例三:将etc.tar 文件解压缩到当前目录下
[root@uu home]# tar -zxvf etc.tar
# 此时我们可以发现当前目录下已经有了一个etc的文件夹,里面就是我们解压缩出来的文件

实例四:如果我只是希望将 etc.tar 中的 etc/passwd 解压出来
[root@uu home]# tar -zxvf etc.tar etc/passwd
# 我可以通过 tar -ztvf 来查阅 tarfile 内的文件名,如果单只要一个文件,
# 就可以通过这个方式来完成。注意?! etc.tar.gz 内的根目录 / 不见了

实例五:备份/etc 内的所有文件,并且保存其权限
[root@uu home]# tar -zxvpf etc.tar.gz /etc/
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时

实例六:在/home 中,比2013/04/01 新的文件就进行备份
[root@uu home]# tar -N '2013/04/01' -zcvf home.tar /home

实例七:我要备份/home,/etc的所有文件,但是不要备份/home/uu这个目录下的文件
[root@uu home]# tar --exclude /home/uu -zcvf myfile.tar.gz /home/* /etc

 

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: