linux基础之压缩、解压缩和归档工具
1、压缩工具
基本介绍
为了减少文件的原来的文件大小而过多的浪费磁盘的存储空间,我们使用压缩后多文件进行存储
压缩工具的介绍
compress:把文件压缩成以.z结尾的压缩文件
uncompress:将以.z压缩文件解压缩为普通文件
gzip:将文件压缩成以.gz结尾的压缩文件
gunzip:将以.gz结尾的压缩文件解压缩为普通文件
bzip2:将文件压缩成以.bz2结尾的压缩文件
bunzip2:将以.bz2结尾的压缩文件解压缩为普通文件
xz:将文件压缩成以.xz结尾的压缩文件
unxz:将以.xz结尾的压缩文件解压缩为普通文件
zip:将文件压缩成以.zip结尾的压缩文件
unzip:将以.zip结尾的压缩文件解压缩为普通文件
tar:将文件归档成以.tar结尾的单文件
cpio:拷贝文件和归档文件
gzip/gunzip类型压缩或解压缩工具
基本介绍
gzip使用的是Lemoel-Ziv LZ777算法实现,这个算法的压缩不是很好。这个文件主要是用来压缩文本文件,如果已经做过二进制编码,那么压缩的意义不大。如果是文本文件被压缩了,我们想看它的内容怎么办?第一个办法先解压缩,在查看。第二个办法使用zcat命令查看
基本语法
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
常用选项
-d:gzip -d表示的就是gunzip命令,表示解压缩
-r:表示递归压缩每个子目录下的文件
-v:压缩详细
-num:表示压缩比,num表示压缩比,范围是[1-9],数字越高,压缩比越大,压缩后的内容越小,压缩的速度越慢
-c:将解压缩或者压缩结果输出至标准输出,如果压缩以后想保留原文件可以使用这种方式
使用案例
gzip -c ./a.txt > b.gz
使用注意
gzip压缩工具进行压缩后,默认会删除源文件,压缩完为了节约空间,只保留压缩后的文件。gunzip解压也是一样,解压缩之后保留解压缩的文件,而删除压缩的文件
zcat查看压缩后的文本工具
基本介绍
不显示展开压缩文件的前提下查看文本文件内容。
底层原理
这个工具底层自动调用gzip -d或者gunzip命令解压文件至临时文件中,并使用zcat工具查看文件内容
基本语法
zcat [ -fhLV ] [ name ... ]
bzip2/bunzip2/bzcat压缩或者解压缩工具
基本介绍
bzip2使用的是LZ77/LZ78-based算法实现,能实现更高压缩比
基本语法
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]
bunzip2 [ -fkvsVL ] [ filenames ... ]
bzcat [ -s ] [ filenames ... ]
bzip2recover filename
常用选项
-k:保留压缩后的原文件
-d:执行解压缩,也就是不用使用bunzip2来解压,bzip2 -d也表示解压
-q:静默输出
-v:详细输出压缩过程
-num:表示压缩比,num表示压缩比,范围是[1-9],数字越高,压缩比越大,压缩后的内容越小,压缩的速度越慢
使用注意
bzip2压缩工具进行压缩后,默认会删除源文件,压缩完为了节约空间,只保留压缩后的文件。bunzip2解压也是一样,解压缩之后保留解压缩的文件,而删除压缩的文件
bcat查看压缩后的文本工具
基本介绍
不显示展开压缩文件的前提下查看文本文件内容。
底层原理
这个工具底层自动调用bzip2 -d或者bunzip2命令解压文件至临时文件中,并使用bcat工具查看文件内容
基本语法
bcat [ -fhLV ] [ name ... ]
xz/unxz/xzcat/lzcat/lzma/unlzma压缩或者解压缩工具
基本介绍
在进行压缩时使用的是lzma压缩算法,这是一个通用的数据压缩工具,压缩后的文件是以.xz结尾
基本语法
xz [option]... [file]...
unxz is equivalent to xz --decompress.
xzcat is equivalent to xz --decompress --stdout.
lzma is equivalent to xz --format=lzma.
unlzma is equivalent to xz --format=lzma --decom-press.
lzcat is equivalent to xz --format=lzma --decom- press --stdout.
使用注意
xz压缩工具是一个主流的压缩工具,他是众多开源作者在源程序包中提供的压缩工具。xz压缩工具是没办法对目录进行压缩的,要想对目录进行压缩,xz压缩工具只能对单个文件进行压缩,要想对目录进行压缩,需要将目录打包成单个文件,在对其压缩 。而打包就是归档
zip打包或归档和压缩工具
基本介绍
zip是众多操作系统都支持的压缩或者打包工具。这个是系统原生支持的压缩工具
基本语法
zip [options....] 压缩后的文件名.zip 要压缩的众多文件
unzip解压缩和展开文件
基本介绍
将zip压缩工具压缩后进行解压缩并且将归档文件展开的工具
基本语法
unzip 压缩和归档文件.zip
tar压缩和打包或归档工具
基本介绍
打包或者归档和压缩和解压缩工具,这个工具的解压和压缩是调用其他压缩和级压缩工具,比如gzip、xz、
基本语法
tar [OPTION...] 打包或者压缩文件.tar [FILE]...
常用选项
c:创建归档
-x:展开归档
-t:列出归档文件的文件列表
--delete:从归档文件中删除文件
-f path:指明归档文件路径
-j:调用bzip2压缩工具
-z:调用gzip压缩工具
-v:显示详细过程
-p:保留权限信息
-J:调用xz压缩工具
-C DIR:将展开文件保存至指定目录下DIR,而不是保存在默认目录下,及当前目录
使用案例
将当前目录下的归档文件为student.tar,展开到/tmp/studengt目录下
tar -x -f ./student.tar -C /tmp/student
使用注意
归档后的文件不会减少文件大小,反而会增大归档后的文件的大小,因为是多个文件合并到一起。归档本身不是压缩
tar命令在解压展开一个压缩归档文件时,可以不同带压缩的选项,tar命令会根据相应的压缩判断该使用的解压工具