Linux下文件的压缩、解压缩、打包以及提取

Linux下文件的压缩、解压缩、打包以及提取

一、单个文件的解压缩

1、压缩文件:

压缩文件就是经过压缩程序压缩的文件,它的原理是把文件的二进制代码进行压缩,把相邻的0,1代码减少,比如1111111,可以把它记作6个1的写法61,这样来减少该文件的空间,实现压缩。

2、文件的压缩

(1)常见压缩文件的扩展名(*表示文件的名字):

压缩文件的扩展名注释
*.gz通过gzip程序压缩的文件
*.bz2通过bzip2程序压缩的文件
*.tartar程序打包的数据,并没有经过压缩
*.tar.gztar程序打包的文件,其中经过gzip的压缩
*.tar.bz2tar程序打包的文件,其中经过bzip2的压缩

(2)压缩文件的两种命令:gzip 【选项】 文件名

gzip 文件名(压缩后原文件被删除)
gzip -c 文件名A > 文件名B.gz(压缩后原文件被保留)
备注:A和B可以不是同一个文件名,修改的后缀也可以不是 .gz 区别就在于 .gz我们可以直观的看出来它是压缩文件,而修改成其他的后缀就不可以直观的知道它是否为压缩文件,也不能够用Tab键进行自动补全。因此建议大家用压缩格式的后缀,文件名与原来的文件名可以不一样。
-c      将输出写到标准输出上,并保留原有文件
-d      将压缩文件解压
-digit   digit部分表示的为数字(1-9)代表压缩速度,但压缩效果越差,数值越大,压缩速度越慢,压缩效果也好,默认为6

接下来我们演示一下,做个对比。
①首先我们在一个空的“压缩”文件夹中创建两个文件fileA和fileB,分别写入hello,world和hello,B。
②然后我们使用第一种压缩命令执行给文件fileA,第二种压缩命令执行给fileB,最后使用ll查看结果发现发现第一种压缩命令的原文件被删除,第二种却没有。
在这里插入图片描述

3、压缩文件的查看:

好文件已经压缩好了。如果我们要查看里面的内容怎么办呢?难道用cat命令,答案当然是否定的。查看压缩文件的命令是  zcat 文件名.gz 如果使用cat命令会导致文件无法被查看(乱码)。对于bzip2文件的查看方式为bzcat 文件名.bz2
在这里插入图片描述

4、文件的解压:gunzip 【选项】 文件名

gunzip 文件名.gz、gzip -d 文件名.gz(解压后原文件被删除)
gunzip -c 文件名A.gz > 文件名B.gz(解压后原文件被保留)
备注:同上

(1)由于这里方法与第1步骤相同,因此不再累赘。但需要补充一点前面没有提到的是下图中红色线框框中的是fileB文件和fileB.gz文件的大小,为什么压缩后的文件会比压缩前的文件大呢?其实就是因为我们里面写的东西太少了,它在压缩的时候还要记录这个文件是怎么压缩的,这就会导致压缩后的文件比未压缩的还大。

在这里插入图片描述
(2)除了gunzip 文件名的解压方式,这里还有一个gzip -d 文件名.gz 的解压方式两种接压方式一样,没有区别。
在这里插入图片描述
总结:由于bzip2和gzip用法相同,这里不在演示。要注意的是gzip压缩速度要比bzip2压缩速度快,同样带来的代价就是gzip的压缩率没有bizp2高

二、多个文件的打包和提取

文件的归档即打包文件的语法:tar 【主选项+辅选项】要打包的文件和目录
主选项(唯一,只能有一个):

c打包:创建一个新归档文件
x解包:从归档文件中提取文件出来
t查看包:列出归档文件的内容,查看已经打包了哪些文件,重点在于查看文件名

辅选项

z通过gzip的方式进行压缩或解压,一般格式为*.tar.gz
j通过bzip2的方式进行压缩或解压缩,一般格式为*tar,bz2
v归档或解包过程中显示被打包的的文件
C这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f输出结果到文件,该选项必须有且必须放在所有选项最后面,如果f后面跟其他选项,会误将后面的选项作为文件名

其他选项

- -exclude=被排除的文件名(要有路径)在打包的过程中,除了要排除的文件,将其他文件进行打包

语法示例 tar czvf new.tar.gz --exclude=1/31 1
意思就是说 通过gzip的打包方式,打包过程中显示打包的文件,新的打包文件名为 new.tar.gz 要打包的目录是 1 目录,要排除的文件为1目录中的名字叫做31的文件。

我们来举几个例子:
1、将“压缩”文件夹中的两个目录和四个文件进行打包:tar czvf dabao.tar.gz fileA fileB fileC fileD 1 2
在这里插入图片描述
2、查看dabao.tar.gz中的文件都有哪些:tar tf dabao.tar.gz
在这里插入图片描述
当显示目录的时候,它会显示出路径分隔符/。

3、解开dabao.tar.gz中的文件到指定路径。
我们在根下创建一个新文件夹起名“压缩2”然后将dabao.tar.gz这个文件解压到“压缩2”文件夹中。使用命令
tar xf dabao.tar.gz -C /root/压缩2
在这里插入图片描述
注意:我们在添加选项的时候,没有j或g的选项是可以的,解压缩的过程中它会自动去识别调用的。

4、我们在“压缩”文件夹中创建目录1并写入4个文件(31、32、41、42)然后我们返回上一级目录,对1目录进行打包操作,并将1目录中名为31的文件进行排除打包操作。
在这里插入图片描述
本节所要用到的Linux命令总结:

压缩注释
gzip 文件名对文件进行压缩后原文件被删除
gzip -c 文件名A > 文件名B.gz创建一个新的压缩文件B,原文件A不会被删除
zcat 文件名.gz 或 bzcat 文件名.bz2查看压缩文件所压缩的文件都有哪些
解压缩
gzip -d 文件名.gz将文件解压缩(原文件不保留)
gunzip 文件名.gz将文件解压缩(原文件不保留)
gunzip -c 文件名A.gz > 文件名B.gz将A文件解压缩命名为B,并且不会删除A文件
打包
tar czvf new.tar.gz --exclude=1/31 1通过gzip的打包方式,打包过程中显示打包的文件,新的打包文件名为 new.tar.gz 要打包的目录是 1 目录,要排除的文件为1目录中的名字叫做31的文件
tar czvf dabao.tar.gz 文件A 目录B将文件A和目录B进行打包,打包后的名字为daobao.tar.gz
tar tf dabao.tar.gz查看打包文件所包含的文件有哪些。
tar xf dabao.tar.gz -C /root/压缩2将dabao.tar.gz解压到指定目录

好了,本文到此就结束了,欢迎大家在评论区发言,指正错误,提出宝贵的建议谢谢!

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 系统中,我们可以使用 tar 命令进行文件打包解压缩。tar 是一个可以打包多个文件并将它们压缩为一个文件的命令,它可以将多个文件打包成一个文件,并以 tar 文件的形式存储。tar 的命令格式为: ```bash tar [options] [filename] ``` 其中,filename 是打包文件的名称,可以是任何你想要的名称,而 options 则是可选项,用于指定一些操作的参数。常用的 options 包括: - c:创建一个新的 tar 文件。 - x:从 tar 文件提取文件。 - v:显示 tar 文件的详细信息。 - f:指定要处理的 tar 文件。 - z:使用 gzip 压缩解压缩。 - j:使用 bzip2 压缩解压缩。 例如,如果要将一个名为 file1 和一个名为 file2 的文件打包到一个名为 archive.tar 的文件中,可以使用以下命令: ```bash tar -cvf archive.tar file1 file2 ``` 这个命令会创建一个名为 archive.tar 的文件,并将 file1 和 file2 文件打包到其中。使用 -c 选项表示创建新的 tar 文件,-v 选项表示显示详细信息,-f 选项指定要处理的文件名。 如果要解包一个名为 archive.tar 的文件,可以使用以下命令: ```bash tar -xvf archive.tar ``` 这个命令会将 archive.tar 文件解包到当前目录中。使用 -x 选项表示从 tar 文件提取文件,-v 选项表示显示详细信息,-f 选项指定要处理的文件名。 如果要对 tar 文件进行压缩解压缩,可以使用 -z 或 -j 选项。例如,要将 archive.tar 文件压缩为 archive.tar.gz 文件,可以使用以下命令: ```bash gzip archive.tar ``` 这个命令会将 archive.tar 文件压缩为 archive.tar.gz 文件。要解压缩这个文件,可以使用以下命令: ```bash gzip -d archive.tar.gz ``` 这个命令会将 archive.tar.gz 文件解压缩为 archive.tar 文件。使用 -d 选项表示解压缩

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值