Linux之(4)文件压缩指令

Linux之(4)文件压缩指令

Author:Once day date:2022年8月16日

全系列文章请查看专栏: Linux Shell基础_Once_day的博客-CSDN博客

Linux基础知识整理系列,不积跬步无以至千里。

本内容收集整理于《鸟哥的Linux私房菜》。

1.引言

压缩可以较低文件所占据的空间大小,特别是文本类的数据,压缩后的大小降低非常多。

对于视频、音乐等文档,本身已经压缩过了,所以再压缩其大小改变有限。

linux的压缩文件分为两类:

  • 含有tar后缀,表示是先用tar打包归档后再压缩的文件。
  • 不含tar后缀,一般是直接压缩的文件。

常见有以下后缀名:

后缀名描述
.zcompress程序压缩的文件
.zipzip程序压缩的文件
.gzgzip程序压缩的文件
.bz2bzip2程序压缩的文件
.xzxz程序压缩的文件
.tartar程序打包的文件,没有压缩过
.tar.gztar程序打包的文件,并且经过gzip的压缩
.tar.bz2tar程序打包的文件,并且经过bzip2的压缩
.tar.xztar程序打包的文件,并且经过xz的压缩

compress已经更不上时代潮流了。

目前主流是gzip、bzip2、xz,它们只能针对单个文件进行压缩,配合打包tar,就能对多个文件进行压缩了。

2.gzip压缩/gunzip解压缩

gzip压缩应用非常广泛,可以解开compress,zip,gzip等软件压缩的文件。

常见用法如下:

gzip 文件名 #直接使用默认参数压缩指定文件
gzip -c    #将压缩数据输出到屏幕上,可通过数据流重定向来处理
gzip -d    #解压缩的参数
gzip -t    #可以用来检验一个压缩文件的一致性,看看文件有无错误
gzip -v    #压缩文件同时显示源文件/压缩文件的压缩比等信息

可以指定压缩等级,有1-9级,越高压缩比越大,但压缩速度也就越慢。默认压缩等级为6。

gzip -9  #以压缩等级9来压缩
2.1 zcat/zmore/zless 直接读取压缩文本文件

这三个命令都可以直接读取gzip压缩的文本文件,也包括其兼容的compress压缩文件。

zcat  xxx.gz
zmore xxx.gz
zless xxx.gz
2.2 zgrep 直接查找压缩文本文件的关键词

可以直接读取gzip压缩的文本文件,也包括其兼容的compress压缩文件。

zgrep "string" xxx.gz
3.bzip2 压缩

bzip2是为了替换gzip而来的命令,其压缩能力能力更好,但所耗费的时间也会更久。

bzip2 文件名  #直接压缩文件
bzip2 -c    #将压缩数据输出到屏幕上,可通过数据流重定向来处理
bzip2 -d    #解压缩的参数
bzip2 -t    #可以用来检验一个压缩文件的一致性,看看文件有无错误
bzip2 -v    #压缩文件同时显示源文件/压缩文件的压缩比等信息

可以指定压缩等级,有1-9级,越高压缩比越大,但压缩速度也就越慢。默认压缩等级为6。

bzip2 -9  #以压缩等级9来压缩
3.1 bzcat、bzmore、bzless、bzgrep直接处理压缩文本

gzip一样,该命令也支持bzcatbzmorebzlessbzgrep等无需解压直接查看文本命令的能力。

此外还可以保留源文件不删除:

bzip2 -k 文件
4.xz 压缩

更高压缩比,但所消耗的时间也增加非常多。

常见用法有以下:

xz 文件名 #直接压缩文件
xz -d 	#解压缩
xz -t   #测试压缩文件的相关信息
xz -l	#列出压缩文件相关信息 	
xz -k	#保留源文件不被删除。
xz -c	#在屏幕上输出数据。
4.1 xzcat、xzmore、xzless、xzgrep直接处理压缩文本

gzip/bzip2一样,该命令也支持xzcatxzmorexzlessxzgrep等无需解压直接查看文本命令的能力。

5.tar打包命令

tar打包命令可以将目录内的所有文件分别进行压缩,并且打包成一个单独的文件。

该命令的参数非常多,异常复杂,这里只展示简单的几种。

tar [-z|j|J] -c -v -f 新文件名 要打包的文件...  #打包压缩
tar [-z|j|J] -t -v -f 要查看的tar文件 		 #查看压缩信息
tar [-z|j|J] -x -v -f 要查看的tar文件 [—C 目录] #解压缩
  • -z,使用gzip支持进行压缩和解压缩,文件名为*.tar.gz
  • -j,使用bzip2支持进行压缩和解压缩,文件名为*.tar.bz2
  • -J,使用xz支持进行压缩和解压缩,文件名为*.tar.xz

-c是建立打包文件,-t查看打包文件的内容含有哪些文件名,-x解包和解压缩。

-f filename后面立刻接要处理的文件名,建议-f单独写一个选项。

-v是输出过程信息,-C指定到特定的解压目录。

也可以加上-p保留文件的权限参数,-P保留绝对路径。

5.1 去除某些额外的打包文件

使用--exclude=xxxx xxx去除不需要的某些文件和文件夹。

使用--newer--newer-mtime备份新文件。

6.dd复制硬盘

该命令可以复制整个硬盘,直接读取原生比特流,直接能复制整个磁盘内容,包括文件系统。

此外还有cpio、mkisofs、cdrecord等备份命令。

关于xfs文件系统,存在xfsdump、xfsrestore这两个增量式备份命令。

目前用不到…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值