6_文件压缩与打包

本文介绍了文件压缩的基本原理,讲解了Linux系统中gzip、bzip2和compress等压缩工具的使用,包括压缩、解压缩及参数选项。还详细阐述了tar打包指令,包括tar的常用选项和如何结合gzip、bzip2进行文件打包压缩。此外,提到了dump和restore用于文件系统的备份和恢复,以及dd命令用于拷贝磁盘分区信息。
1.文件压缩的基本原理

在文件存储中,通常使用字节(byte)为存储的计量单位,但是在计算机系统中,最小单位是bit。所以可以通过算法压缩无效的bit位,或者通过某种算法可以记录有效的bit等等途径从而减少文件的大小。例如:数字1,在计算机中有效位只是最后一位的1有效,其他七位自动补0,这其中的七个0其实是无效的。所以可以通过压缩算法压缩掉七位补充的0,从而减少容量大小。

2.Linux系统中常见的压缩格式说明
后缀名含义
*.Zcompress程序压缩文件
*.gzgzip程序压缩文件
*.bz2bzip2程序压缩文件
*.tartar程序将多个文件打包数据,并没有压缩过
*.tar.gztar程序打包的文件,其中并经过gzip程序进行压缩
*.tar.bz2tar程序打包的文件,其中并经过bzip2程序进行压缩

Linux系统中目前最常用的两个压缩程序是gzip和bzip2,tar是将多个文件打包到一个文件下,并没有对文件进行压缩

3.压缩与解压缩程序的常用介绍
3.1 compress

compress这个压缩程序是非常老旧的一款压缩程序,而且gzip完全可以解压缩compress压缩的文件。
compress [-rcv] 文件或目录 // 压缩
uncompress 文件.Z // 解压缩
选项与参数:
-r:可以连同目录下的文件也同时给予压缩
-c:将压缩数据输出成为标准输出,输出到屏幕上
-v:可以显示压缩后的文件信息以及压缩过程中的一些文件名变化

3.2 gzip,zcat

gzip可以说是应用度最广泛的压缩程序。目前gzip可以解开compress,zip与gzip等软件所压缩的文件。
注:gzip压缩文件只能压缩单一文件,不能压缩多个文件,如果要压缩多个文件可以先打包在进行压缩
gzip [-cdtv#] 文件
zcat 文件名.gz
选项与参数
-c:将压缩数据输出到屏幕上,可透过数据流重导向来处理。
-d:解压缩参数
-t:可以用来校验压缩文件的一致性,看文件是否有错误
-v:可以显示原文件与压缩文件的比例
-#:压缩等级,-1最快,但是压缩比最差;-9最慢,但是压缩比最高。预设是-6
举例:
gzip -c hello.txt 这只会将压缩后的数据输出到屏幕上,当然可以通过重定向输出到文件如gzip -c hello.txt > hello
gzip -d hello.gz用于解压缩
gzip -t hello.gz用于检查压缩文件是否有问题
zcat hello.gz如果hello这个文件是文本文件,则可以通过zcat读取压缩文件内容

3.2 bzip2,bzcat

如果说gzip是为了取代compress并提供了更好的压缩比例,那么bzip2则是为了取代gzip并提供更佳的压缩比。
bzip2 [-cdkzv#] 文件
选项与参数
-c:将压缩产生的数据输出到屏幕上
-d:解压缩文件的参数
-k:keep保留原文件
-z:压缩的参数
-v:显示出原文件/压缩文件的压缩比信息
-#:与gzip是同样的属性,-1最快,-9压缩比最佳
举例:
bzip2 -z 文件压缩文件
bzip2 -d 压缩文件.bz2解压缩文件
bzcat 压缩文件.bz2可以查看文本类型的压缩文件

4.tar打包指令

gzip,bzip2只能对单一文件进行压缩,虽然可以对目录进行压缩,但是gzip和bzip2是对目录下的各个文件进行压缩,所以可以通过tar指令进行打包,在压缩。
主要介绍几个tar常用的选项,其他详细选项可以通过man tar进行查阅
tar [-j|-z] [cv] [-f 新建的压缩文件名] filename...打包与压缩文件
tar [-j|-z] [tv] [-f 新建的文件名] 查看文件名
tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]解压缩
选项与参数
-c:建立打包文件,可搭配-v来观察过程中被打包的文件名
-t:查看打包文件的内容含有哪些文件名,重点在查看打包内的文件名
-x:解打包或解压缩的功能,可以搭配-C(大写)在特定的目录下解压,特别注意:-c -t -x不可以同时出现在一个指令的选项中
-j:通过bzip2的支持进行压缩和解压;此时压缩后的文件名为*.tar.bz2
-z:通过gzip的支持进行压缩和解压;此时压缩后的文件名为*.tar.gz
-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f后面要立刻接要被处理的文件名!建议-f单独写一个选项
-C目录:这个选项用在解压缩,若要在特定的目录解压缩,可以使用这个选项。
–exclude=FILE:在压缩的过程中,不要将FILE文件进行打包!
提供一些常用的tar指令(注:filename.tar.bz2是压缩后的文件名)
压    缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名
查    询:tar -jtv -f filename.tar.bz2
解压缩: tar -jxv -f filename.tar.bz2 -C 欲解压缩在那个目录下

5.dump和restore

文件系统的备份和恢复操作指令,具体的使用方式可以通过man进行查看

6.dd

可以拷贝整个磁盘分区的信息,包括superblock,iNode,block等,且拷贝后的磁盘不需要进行格式化,因为dd将磁盘文件系统上的所有信息都可以拷贝过去,详情可以通过man dd进行查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值