Linux之(4)文件压缩指令
Author:Once day date:2022年8月16日
全系列文章请查看专栏: Linux Shell基础_Once_day的博客-CSDN博客。
Linux基础知识整理系列,不积跬步无以至千里。
本内容收集整理于《鸟哥的Linux私房菜》。
文章目录
1.引言
压缩可以较低文件所占据的空间大小,特别是文本类的数据,压缩后的大小降低非常多。
对于视频、音乐等文档,本身已经压缩过了,所以再压缩其大小改变有限。
linux的压缩文件分为两类:
- 含有tar后缀,表示是先用tar打包归档后再压缩的文件。
- 不含tar后缀,一般是直接压缩的文件。
常见有以下后缀名:
| 后缀名 | 描述 |
|---|---|
.z | compress程序压缩的文件 |
.zip | zip程序压缩的文件 |
.gz | gzip程序压缩的文件 |
.bz2 | bzip2程序压缩的文件 |
.xz | xz程序压缩的文件 |
.tar | tar程序打包的文件,没有压缩过 |
.tar.gz | tar程序打包的文件,并且经过gzip的压缩 |
.tar.bz2 | tar程序打包的文件,并且经过bzip2的压缩 |
.tar.xz | tar程序打包的文件,并且经过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一样,该命令也支持bzcat、bzmore、bzless、bzgrep等无需解压直接查看文本命令的能力。
此外还可以保留源文件不删除:
bzip2 -k 文件
4.xz 压缩
更高压缩比,但所消耗的时间也增加非常多。
常见用法有以下:
xz 文件名 #直接压缩文件
xz -d #解压缩
xz -t #测试压缩文件的相关信息
xz -l #列出压缩文件相关信息
xz -k #保留源文件不被删除。
xz -c #在屏幕上输出数据。
4.1 xzcat、xzmore、xzless、xzgrep直接处理压缩文本
与gzip/bzip2一样,该命令也支持xzcat、xzmore、xzless、xzgrep等无需解压直接查看文本命令的能力。
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这两个增量式备份命令。
目前用不到…

3239

被折叠的 条评论
为什么被折叠?



