Linux基础学习笔记-文件压缩

前言

这部分比较简单,以下

Linux文件压缩、打包与备份

Linux常见压缩命令

当前的Linux系统里,文件的压缩格式主要有.tar .tar.gz .tgz .gz .Z .bz2 *.xz,虽然Linux的扩展名没有什么luan用,但是由于Linux支持的压缩指令太多,而且所运用到的技术不同,所以彼此之间无法互通,这样的话就需要识别出文件到底是如何压缩的,好运用相同的方法来解压,如下是一些常见的压缩文件扩展名:

*.z compress程序压缩

*.zip zip程序压缩

*.gz gzip程序压缩

*.bz2 bzip2程序压缩

*.xz xz程序压缩

*.tar tar程序打包文件,并未被压缩

*.tar.gz tar程序打包文件,其中经过gzip压缩

*.tar.bz2 tar程序打包文件,其中经过bzip2压缩

*.tar.xz tar程序打包文件,其中经过xz压缩

gzip

使用方法:

1
2
3
4
5
6
gzip [-cdtv#] filename
-c 将压缩的数据输出到屏幕上
-d 解压缩参数
-t 用来检验一个压缩文件的一致性~看看文件有无出错
-v 可以显示出源文件/压缩文件的压缩比等信息
-# 为数字的意思,代表压缩等级,-1最快,压缩比最差,-9最慢,但是压缩比虽好,默认-6

使用:

1
2
3
4
5
6
[gard3nia@localhost ~]$ gzip 1.txt
[gard3nia@localhost ~]$ ls
1.txt.gz hack haha
[gard3nia@localhost ~]$ gzip -d 1.txt.gz
[gard3nia@localhost ~]$ ls
1.txt hack haha

bzip2

几乎和bzip使用方法一毛一样,加了一个参数:

1
2
3
4
5
-k 保留原始文件

[gard3nia@localhost ~]$ bzip2 -k 1.txt
[gard3nia@localhost ~]$ ls
1.txt 1.txt.bz2 hack haha

xz

压缩比更高,用法和上述bzip2命令基本相同,不再赘述…

打包命令:tar

前面谈到的命令大多只能针对单一的文件进行压缩,虽然也可以对目录进行压缩,但是这两个指令对目录的压缩指的是将目录内的所有文件分别进行压缩,也就是产生很多个压缩包…我们需要一个打包压缩的命令

下面介绍一下本次的主角tar指令:

1
2
3
4
5
6
7
8
9
10
11
12
tar 
-c 创建打包文件
-t 查看打包文件的内容含有哪些文件名
-x 解打包或解压缩
-z 通过gzip来进行压缩和解压缩:*.tar.gz
-j 通过bzip2来进行压缩和解压缩:*.tar.bz2
-J 通过xz来进行压缩和解压缩:*.tar.xz
-v 在压缩或者解压缩的过程中,将正在处理的文件名显示出来
-f 后面立刻接被处理的文件名
-C 用在解压缩的时候,在特定目录解压
-p 保留备份数据的原本权限和属性
-P 保留绝对路径

其实最常用的如下(以gzip举例)

压缩:tar -zcv -f filename.tar.gz + 源文件(目录)名

查询:tar -ztv -f filename.tar.gz

解压:tar -zxv -f filename.tar.gz -C + 想要解压的目录

备份数据的时候需要打包且需要将数据原来的属性保持完整:

备份:tar -zpcv -f filename.tar.gz + 源文件(目录)

如果确定需要备份绝对路径,在解压时直接覆盖原来的数据,那么需要再家伙是那个一个-P

Author: Gard3nia
Link: https://gardenia30.top/2019/11/07/Linux基础学习笔记-文件压缩/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.