linux-压缩和归档

压缩

压缩比: λ = o l d S i z e − n e w S i z e o l d S i z e \lambda = \frac{oldSize - newSize}{ oldSize} λ=oldSizeoldSizenewSize

文件准备

echo "godme" > godme.file
echo "judas" > judas.file

gzip

  • 压缩文件
gzip godme.file
gzip judas.file

在这里插入图片描述

  • 默认后缀.gz
  • 自动命名
  • 自动删除源文件
  • 查看信息
zcat godme.file.gz
zcat judas.file.gz

在这里插入图片描述

通过这点应该理解一件事情,gzip压缩的是文件内容,而不是文件本身。

查看时没有相关文件信息,而是内容的输出。

  • 解压文件
gunzip godme.file.gz
gzip -d judas.file.gz

在这里插入图片描述

可以看到,解压方式有两种:gunzipgzip -d。后面跟上压缩文件即可。

为了验证我们之前只是压缩文件内容的说法,做一个小实验
在这里插入图片描述

可以看到,解压文件的文件名,仅仅是把.gz后缀去掉了。

也就是说,gzip只是单纯的文件内容压缩,关于文件名信息并没有进行保存和管理。

所以gzip仅仅是针对单个文件的压缩。

  • 小结

特别提示:-n n ∈ N + n\in N^+ nN+,可以指定压缩比。

gzip一般用于老平台。

commandoptionsdescription
gzip压缩文件内容
--d解压文件内容
--n指定压缩比例
zcat查看压缩文件内容
gunzip解压文件
  1. 后缀名.gz
  2. 自动添加后缀,不用指定压缩文件名称
  3. 不保存源文件
  4. 针对单个文件内容压缩,不管理文件名

bzip2

压缩效果高于gzip

小文件压缩效果差,可能会更大,大文件压缩效果更佳。

  • 压缩文件
bzip2 godme.txt
bzip2 -k judas.file

在这里插入图片描述

  • -k保持keep源文件,不删除。

  • 单文件,不用指定压缩文件名。

  • 默认后缀.bz2

  • 查看信息
bzcat godme.txt.bz2
bzcat judas.file.bz2

在这里插入图片描述

同样是文件内容

  • 解压文件
bzip2 -d godme.txt.bz2
bunzip2 judas.file.bz2

在这里插入图片描述

文件名试验
在这里插入图片描述

不管文件名,只是去后缀名实现文件内容解压。

  • 小结
commandoptionsdescription
bzip2压缩文件内容
-k保留原文件
-d解压压缩文件
-n指定压缩比例
bzcat查看压缩文件内容
bunzip2解压压缩文件
  1. 后缀名.bz2
  2. 自动命名,无需指定
  3. 针对内容,压缩单个文件

xz

  • 压缩文件
xz godme.txt
xz -k judas.txt

在这里插入图片描述

  • 后缀名.xz

  • -k保留原文件

  • 自动后缀命名

  • 查看内容
xzcat godme.txt.xz

在这里插入图片描述

  • 解压文件
xz -d godme.txt.xz
unxz judas.txt.xz

在这里插入图片描述

文件名测试
在这里插入图片描述

  • 小结
commandoptionsdescription
xz压缩文件内容
-k保留原文件
-d解压压缩文件
-n指定压缩比
xzcat查看压缩内容
unxz解压压缩文件

unxz看起来正常了,但是

神经病多余正常人,正常人就是神经病。

这种感觉。

  1. 后缀.xz
  2. 自动后缀命名
  3. 单文件压缩

特殊

zip

  • 压缩文件
zip all.zip godme.godme judas.file

在这里插入图片描述

  • 需指定压缩文件名
  • 默认不删除原文件
  • 可以压缩多个文件

命令后第一个作为压缩文件名,后续属于压缩范围

  • 查看内容
zipnote all.zip

在这里插入图片描述

含有文件名称信息

  • 解压文件
unzip all.zip

在这里插入图片描述

  • 小结
commanddescription
zip压缩多个文件
zipnote查看压缩信息
unzip解压压缩文件
  1. 需手动指定压缩文件名
  2. 后缀.zip
  3. 可压缩多个文件
  4. 第一个参数为压缩文件名,后续为压缩文件
  5. 默认保留原文件

zip是很多平台默认自带的压缩工具。

但是压缩比不高,压缩效率并不太好。

关于怎么可以压缩成多个文件,还有一层隐藏。

归档

压缩只针对一个文件,归档呢?

多个文件合而为一,两者配合天衣无缝。

tar

首先说一下命令选项

optionsdescription
-f指定文件名
-c创建归档
-x展开归档
-t查看归档
-zgzip格式
-jbzip2格式
-Jxz格式
-v详细信息

你可以看到-f,归档文件都必须指定文件名,不论创建还是其他 操作,相当于是强制选项了。

接下来操作一下。

  • 归档
tar -cf all.tar godme.txt judas.file

在这里插入图片描述

创建时,必须-c,指定文件名也必须-f,由于-f后必须跟上文件名参数,所以每次都是最后一个。

默认保留原文件。

  • 查看
tar -tf all.tar

在这里插入图片描述

打印文件名称信息,不显示内容。

  • 目录
    在这里插入图片描述

可针对目录直接归档

  • 解压
tar -xf all.tar

在这里插入图片描述

自动解压还原目录

  • 小结
  1. 后缀.tar
  2. 必须指定名称
  3. 可针对目录归档

压缩命令大多只针对单文件进行压缩,tar可针对目录完成归档。

常用

压缩命令只压缩内容,无法管理目录结构。

配合归档,先把多个文件合二为一,然后针对单独的归档文件进行压缩。

这就是符合我们使用的模式

gzip
xz
bzip2
a.file
b.file
n.file
all.tar
all.tar.gz
all.tar.xz
all.tar.bz2

tar其中的格式选项对应的就是压缩方式,展开时也会自动调用

optiontype
-zgzip
-jbz2
-Jxz

gzip

  • 压缩(-zcf)
    在这里插入图片描述

  • 查看(-ztf)
    在这里插入图片描述

  • 解压(-zxf)
    在这里插入图片描述

bz2

效果不变,自己尝试

  • 压缩(-jcf)
  • 查看(-jtf)
  • 解压(-jxf)

xz

自己尝试

  • 压缩(-Jcf)
  • 查看(-Jtf)
  • 解压(-Jxf)

自动识别

其实当我们归档以后,就有了后缀名了,我们可以不必去指定压缩格式,它可以自动识别的。

optionsshort
-ztf-tf
-zxf-xf
-jtf-tf
-jxf-xf
-Jtf-tf
-Jxf-xf

似曾相识

关于压缩,常见的是这种把tar -zxvf XXX.tar.gz

然后出来一大堆,感觉高大上,但是你可以简单分析一下。

  • -v显示了详细信息看起来比较多
  • -z指定了格式
  • -x解压
  • -f指定文件

结果zv完全没必要,结果就是tar -xf XXX.tar.gz

有啥高大上的,别被骗了,不用自己吓自己,慢慢来,总能学会。

如是安慰自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值