Linux 下的归档与压缩之 tar 与 gzip 的基本使用
创始人
2025-05-30 21:24:25
0

文章目录

  • 参考
  • 描述
  • 归档与压缩
      • 归档
          • 常用工具
      • 压缩
          • 常用工具
      • 归档并压缩
  • tar
      • 选项
      • 常见形式
          • 细节
  • gzip
      • 选项
      • 常见形式
          • 细节

参考

项目描述
维基百科Tar
维基百科官网
维基百科Gzip
Linux 命令行与 shell 脚本编程大全ISBN 978-7-115-59251-4

描述

项目描述
操作系统Ubuntu 22.04.2 LTS(64 位)
tar1.34
gzip1.10

归档与压缩

归档

通过对多个文件进行归档操作,我们将得到一个归档文件。使用归档文件将使得文件在系统间的传输更加便利。

常用工具

tar

tarUnix类 Unix 系统中的归档打包工具,可以将多个文件合并为一个文件。目前,tar 文件格式已经成为 POSIX 标准。tar 设计的最初目的是将文件备份到磁带上 ( Tape Archive ) ,因而得名 tar


上述内容整理自 维基百科

压缩

在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据比特(或者其它信息相关的单位)表示信息的过程。


上述内容引用自 维基百科

常用工具

gzip

Gzip类 Unix 系统中常见的压缩及解压缩工具。GzipGUN 中的一员,名称中的 G,指的便是 GNU

Bzip2

bzip2 相比传统的 gzip 或者 ZIP 的压缩效率更高,但是压缩速度较慢。与 RAR 或者 ZIP 等其它不同的是,bzip2 只是数据压缩工具,而不是归档工具,在这一点与 Gzip 类似。


上述内容整理自 维基百科

compress

Linux compress 命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。


上述内容引用自 菜鸟教程

归档并压缩

由于 gzip 无法对多个文件或目录进行合并压缩,所以其常常与 tar 一起使用。由 tar 将多个文件或目录进行归档,再由 gzip 实行压缩。目前,tar 支持将归档文件自动提交给其他压缩工具进行压缩。这意味着,使用 tar,您将能够直接完成多个文件或目录的归档及压缩操作。

归档并压缩

上述图片引用自 维基百科


tar

选项

项目描述
-f指定文件(指定何种类型的文件依据情况而定)。
-c--create创建一个归档文件,使用 -f 指定归档文件使用的文件名称。
--delete使用 -f 选项指定归档文件,从归档文件中删除部分文件。
-x--get--extract使用 -f 选项指定归档文件,从目标归档文件中提取部分或全部文件。如未指定需要从归档文件中提取的文件,默认提取归档文件中的全部文件。
-r--append使用 -f 选项指定归档文件,将非 tar 归档文件的文件附加到指定归档文件中。
-k--keep-old-files使用 -f 指定归档文件,从归档文件中提取文件时,不覆盖其他文件。若目录中已存在同名文件,则取消该文件的提取操作,继续执行其他文件的提取操作。
-t--list使用 -f 选项指定归档文件,列出该归档文件中所包含的其他文件。
-v--verbose输出与当前命令相关的执行信息。在单条命令中,你可以多次重复使用该选项。在某些情况下,这将得到更为详细的描述信息。
-j将结果传递给工具 Bzip2 进行处理(进行何种处理,由 tar 自动进行指派)。
-J将结果传递给工具 xz 进行处理(进行何种处理,由 tar 自动进行指派)。
-z将结果传递给工具 Gzip 进行处理(进行何种处理,由 tar 自动进行指派)。
-Z将结果传递给工具 compress 进行处理(进行何种处理,由 tar 自动进行指派)。
--version输出当前使用的 tar 的版本。
--help输出与 tar 相关的帮助信息。

常见形式

将多个文件归档为一个文件

将当前工作目录下的 partition_1partition_2 打包,得到归档文件 result.tar

tar -cvf result.tar partition_1 partition_2

查看归档文件中的文件内容

列出当前工作目录下的归档文件 result.tar 中的文件。

tar -tvf result.tar

将一个归档文件附加到另一个归档文件末尾

将当前工作目录下的归档文件 result.tar 附加到当前工作目录的归档文件 result.tar 中。

  1. 检索当前工作目录下的文件
ls

执行结果

partition_1  partition_2  result.tar
  1. 检索归档文件 result.tar 中的文件
tar result.tar -tvf

执行结果

-rw-r--r-- root/root         0 2023-03-19 17:57 partition_1
-rw-r--r-- root/root         0 2023-03-19 17:57 partition_2
  1. 将归档文件 result.tar 附加到 result.tar
tar -Avf result.tar result.tar
  1. 检索归档文件 result.tar 中的文件
tar -f result.tar -tv

执行结果

-rw-r--r-- root/root         0 2023-03-19 17:57 partition_1
-rw-r--r-- root/root         0 2023-03-19 17:57 partition_2
-rw-r--r-- root/root         0 2023-03-19 17:57 partition_1
-rw-r--r-- root/root         0 2023-03-19 17:57 partition_2

从归档文件中删除部分文件

  1. 从当前工作目录下的归档文件 result.tar 中将 partition_1 文件进行删除。
tar --delete -f result.tar partition_1
  1. 检索归档文件 result.tar 中的文件
tar -f result.tar -tv

执行结果

-rw-r--r-- root/root         0 2023-03-19 17:57 partition_2
-rw-r--r-- root/root         0 2023-03-19 17:57 partition_2

将当前工作目录下的 partition_1 附加到归档文件 result.tar 中

tar -rf result.tar partition_1

从当前工作目录下的归档文件 result.tar 中提取部分文件(partition_2)

tar -xf result.tar partition_2

从当前工作目录下的归档文件 result.tar 中提取全部文件

tar -xf result.tar 

从当前工作目录下的归档文件 result.tar 中删除所有文件

tar --delete result.tar

将多个文件归档后交由 gzip 进行归档文件的压缩

将当前工作目录下的 partition_1partition_2 文件归档后交由 Gzip 进行压缩,得到归档压缩文件 result.tar.gz

tar -czvf result.tar.gz partition_1 partition_2

将归档压缩文件交由 gzip 解压后,再由 tar 进行解除归档操作

tar -xzvf result.tar.gz
细节
  1. 将文件添加到归档文件后,源文件将不会发生改变。
  2. 从归档文件中提取文件后,该文件将不会从该归档文件中消失。
  3. 归档文件中可以出现多个同名文件,在提取归档文件中的文件时,可能因此出现文件覆盖的现象。可以使用 -k–keep-old-files 选项来避免解除归档的过程中,覆盖已有的同名文件。

gzip

选项

项目描述
-d--decompress--uncompress将目标文件进行解压缩操作。
-k--keep实行解压操作或压缩操作后保留源文件。
-l--list列出与目标压缩文件相关的一系列信息。
-r--recursive对目标文件夹进行递归处理以操作目标文件夹中的所有文件(不包括隐藏文件)。
-v--verbose显示压缩过程中相关的操作信息。
-t--test检测压缩文件的完整性。该选项推荐同 -v–verbose 选项一同使用。
-<压缩效率>压缩效率是一个介于 1-9 的数值,预设值为"6"。指定愈大的数值,压缩效率就会愈高。
--best此参数的效果与使用 -9 参数所得到的效果相同。
--fast此参数的效果与使用 -1 参数所得到的效果相同。
-V--version显示 Gzip 的版本信息。
-h--help显示与 Gzip 相关的帮助信息。

常见形式

将当前工作目录下的 partition_1 及 partition_2 分别进行压缩

gzip -k partition_1 partition_2

执行结果

源文件(被压缩文件)未被删除,得到文件 partition_1.gzpartition_2.gz

将当前工作目录下的 partition_1.gz 与 partition_2.gz 分别进行解压

gzip -d partition_1.gz partition_2.gz

执行结果

源文件(压缩文件)均被删除,得到文件 partition_1partition_2

细节
  1. 使用 Gzip 将文件压缩后,源文件默认将被删除,你可以使用 -k 选项来避免源文件的删除。
  2. 使用 Gzip 将文件解压后,压缩文件默认将被删除,你同样可以使用 -k 选项来避免压缩文件的删除。
  3. 使用 Gzip 压缩文件夹时,如无使用 -r 选项,则压缩指令将被忽略。使用 -r 选项后也无法将文件夹进行归档压缩,而是将该文件夹中所有的文件(包括后代文件夹中的文件,但不包括其中的隐藏文件)单独进行压缩。对此,请参考如下示例:

检索目标文件夹中的文件

ls -a C++

执行结果

.  ..  demo  demo.cpp  demo.gz  hello  hello.cpp  hello.gz  .vscode

使用 Gzip 将目标文件夹进行压缩处理

gzip -r C++

检索目标文件夹中的文件

ls -a C++

执行结果

.  ..  demo.cpp.gz  demo.gz  hello.cpp.gz  hello.gz  .vscode

相关内容

热门资讯

走进小城看消费丨江西资溪:低碳...   夏日时节下午4点,江西省抚州市资溪县大觉山景区漂流终点依然热闹。来自南昌的游客余鑫漂流结束后没有...
【中原晨会0625】市场分析专... 来源:市场资讯 (来源:中原证券研究所) 本期重点研报目录 【中原策略】市场分析:电子半导体领涨 ...
南向资金连买4日!低费率+可月... 6月25日早盘,港股红利资产震荡整理。截至11时14分,港股红利低波ETF招商(520550)下跌0...
618成交破百万!紫荆花用一套... 一年一度的618年中大促,是消费市场的晴雨表,也是品牌间最激烈的角力场。当各大品牌在直播间里铆足了劲...
原创 黄... 2026年6月25日的国际金价已经从前期的5500美元高点跌到4200美元下方,累计跌幅超过22%,...
英伟达CEO:Vera Rub... 截至9:38,中证半导体材料设备主题指数(931743)涨2.36%创新高;权重股中,中微公司涨3....
再被催债16亿!“钢铁大王”戴... 澎湃新闻记者 贺梨萍 因“铁本事件”入狱五年的戴国芳重返钢铁行业,但他并没有完成从阶下囚再到“钢铁大...
周三原油价格下跌 随着美国和伊朗在和平谈判中取得进展,越来越多的油轮公开穿越霍尔木兹海峡,原油在战时的价格上涨已经蒸发...
这种蛋白是大脑衰老的开关 这种蛋白是大脑衰老的开关 清晨,假设一位五十岁左右的王女士发现自己常常把手机放在熟悉的抽屉里又找不到...
信通院牵头算力Token出海生... 盘面上,截至11:04,中证科创创业50指数(931643)涨1.68%,创历史新高;权重股中,芯原...
海外 774 亿营收背后:日本... 文 | 游戏价值论 6月23日,彭博社报道了腾讯正在围绕出售多家日本游戏工作室少数股权开展谈判,包...
餐饮“抢人”大战:把店开到公交... 作者 |餐饮老板内参 内参君 医院、公交站、演唱会…餐饮品牌,正在无孔不入 在北京儿童医院,肯德基...
快讯 | 外资扫货!陈翊庭:港... 港交所行政总裁陈翊庭在接受《中国证券报》专访时指出,国际资本对中国资产的看法已彻底扭转,布局中国市场...
2777.77元!A股“股王”... 25日早盘,昨天创下历史新高的A股“股王”联讯仪器,今天上午继续走强,盘中股价再度刷新历史新高。 截...
原创 今... 欧洲自己的媒体直接下结论,欧盟衰退躲不掉,内部分裂拦不住,现在就连欧洲顶尖工业巨头,都偷偷在用中国的...
黄仁勋股东大会放言:本轮AI基... 在当地时间6月24日的英伟达(NVDA.O)2026年度股东大会上,股东批准了该公司全部10名董事会...
国际油价大跌 新华社消息, 纽约原油期货主力合约价格24日盘中跌破每桶70美元,为伊朗战事爆发以来首次。 市场分析...
马云带队插秧,什么信号? 一场别开生面的“务农”,让外界看到了一个不一样的阿里巴巴。 近日,阿里巴巴合伙人、高德董事长刘振飞在...
全球最大产能,最高丰度达99.... 本文转自【科技日报】; 6月23日,高丰度硼-10同位素技术暨产业化成果发布会在山东省东营市举办,全...
黄金大跳水!金饰克价年内暴跌近... 25日,现货黄金盘中震荡,截至发稿,报3985.070美元/盎司,跌0.17%。 当地时间24日,...