14. 【Linux教程】文件压缩与解压

文件压缩与解压

前面小节介绍了如何对文件和目录删除、移动操作,本小节介绍如何使用命令对文件和目录进行压缩与解压操作,常见的压缩包格式有 .bz2.Z.gz.zip.xz,压缩之后的文件或目录占用更少的空间。

1. tar 命令介绍

下面列举 tar 命令的参数:

tar 命令参数名称功能与作用描述
-c新建立压缩档案
-x解压缩
-t查看内容
-u更新原压缩包的内容
-zgzip 属性的
-jbz2 属性的
-Zcompress 属性的
-v显示所有过程
-O将文件解压缩成标准输出形式
-f使用档案名字,此参数都是在最后,其后面跟上一个档案的名字

Tips:其中 -c-x-t-u 这五个参数是独立的,每次使用选其中一个,-f 是最后一个参数,后面跟上档案名。

1.1 将指定类型文件打包成 tar 包

为了演示方便,先切入到 /home 目录下,使用 touch 命令创建几个 .txt 文件,然后使用 tar 命令将其打包,命令如下:

cd /home

touch a.txt b.txt c.txt d.txt e.txt

ls -l

tar -cf alltxt.tar *.txt 

ls -l

执行结果如下图:

Tips:其中 alltxt.tar 是一个自定义名称,后缀是 tar ,前半部分的名字可自行定义, *.txt 中的 * 表示通配符代表所有的意思。

1.2 向现有的 tar 包中新增文件

这里再使用 touch 命令创建一个 g.txt 文件,使用 tar 命令将其新增至 alltxt.tar 中,命令如下:

touch g.txt

tar -rf alltxt.tar g.txt

执行结果如下图:

1.3 更新 原来 tar 包中的文件

使用 rm 命令删除 /home 目录中的 a.txt ,然后新建一个 a.txt 表示为更新后的 a.txt,使用 tar 命令将 a.txt 更新至 alltxt.tar 中,命令如下:

rm -f a.txt

touch a.txt

tar -uf alltxt.tar a.txt

执行结果如下图:

Tips:若 alltxt.tar 中没有 a.txt,那么使用 tar -uf 就会将 a.txt 新增到 alltxt.tar 中。

1.4 列出 tar 包中打包的所有文件

这里为了演示方便,将 /home 目录原有的 .txt 文件全都删除掉,然后使用 tar 命令查看 alltxt.tar 中所有文件列表,命令如下:

ls

rm -f *.txt

ls

tar -tf alltxt.tar

执行结果如下图:

1.5 解开 tar 包中所有文件

接着上面的内容,可以使用 tar 命令将 alltxt.tar 解开把文件释放到当前目录,命令如下:

ls

tar -xf alltxt.tar

ls

执行结果如下图:

1.6 使用 tar 命令压缩

上面打包的 alltxt.tar 文件并没有压缩文件,只是把文件都打包在一起,如下命令可以把 alltxt.tar 压缩成为不同格式的压缩包:

ls

tar -czf alltxt.tar.gz alltxt.tar

ls

tar -cjf alltxt.tar.bz2 alltxt.tar

ls

tar -cZf alltxt.tar.Z alltxt.tar

ls

执行结果如下图:

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

1.7 使用 tar 命令解压缩

为了演示方便,防止读者混淆,先将 alltxt.tar.gzalltxt.tar.bz2alltxt.tar.Z 三种格式压缩包移动至 study 目录,然后使用 tar 命令解压,命令如下:

ls 

mv alltxt.tar.gz study/

mv alltxt.tar.bz2 study/

mv alltxt.tar.Z study/

cd study/

ls

移动过程执行如下图:

如上图所示,将需要解压的三种格式压缩包移动至 /home/study 目录中,下面对其解压缩,命令如下:

ls

tar -zxvf alltxt.tar.gz

ls

rm -f alltxt.tar

ls

tar -jxvf alltxt.tar.bz2

ls

rm -f alltxt.tar

ls

tar -Zxvf alltxt.tar.Z

ls

执行结果如下图:

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

2. zip 格式压缩与解压

CentOS 8 系统中自带 zipunzip 压缩与解压工具,可以使用 zip -vunzip -v 命令查看当前是否安装 zipunzip 工具,若是没有安装,则可以使用如下命令安装:

yum -y update


yum -y install zip unzip

安装过程如下图:

如上图所示,先要更新 yum 源的软件包数据,如下图所示为安装 zipunzip 的过程执行图:

Tipsyum 是 Linux 中的一个软件管理仓库,关于 yum 如何安装软件后续小节会详细介绍。

2.1 使用 zip 压缩文件

使用 zip 命令可以将 alltxt.tar 包压缩为 .zip 压缩包,命令如下:

ls

zip alltxt.zip alltxt.tar

ls

执行结果如下:

Tips:可以使用 zip -r zip包名 目录名 递归压缩目录以及目录中所有文件。

2.2 使用 unzip 解压缩

为了演示方便,先将 alltxt.zip 文件移动至 /home/study 中,然后解压,命令如下:

ls

mv alltxt.zip study/

cd study/

ls

unzip alltxt.zip

ls

执行结果如下图:

3. 小结

本小节介绍了如何使用 tar 命令打包文件和解开 tar 包,还介绍了如何使用 tar 将文件包压缩为 .gz.bz2.Z 格式的压缩包,如何解压缩它们,最后还介绍了如何使用 zipunzip 工具压缩与解压 .zip 格式的压缩包,需要注意的是使用 tar 命令将文件打包成 tar 包之后,文件并没有被压缩,只是打包在一起了,压缩文件前,也可以不打包成 tar 包,可以直接对某个文件和目录进行压缩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/375986.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】基础知识讲解(命名空间、缺省参数、重载、输入输出)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 命名空间 命名空间的定义 命名空间的使用 命名空间的嵌套使用 C输入&输出 std命名空间的使用惯例&…

阿里云服务器centos_7_9_x64位,3台,搭建k8s集群

目录 1.环境信息 2.搭建过程 2.1 安装Docker源 2.2 安装Docker 2.3 安装kubeadm,kubelet和kubectl 2.4 部署Kubernetes Master(node1) 2.5 安装Pod网络插件(CNI) 2.6 加入Kubernetes Node 2.7 测试kubernetes集群 3.部署 Dashboard…

webrtc native api的几个要点

文章目录 基本流程状态回调类sdp的中媒体行pc对象 基本流程 webrtc native的接口,主要就是围绕着PeerConnection对象,一个PeerConnection对象它代表了一次音视频会话。 那么通过PeerConnection对象建立音视频通话,包括如下步骤: …

回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测(完整源码…

光伏板安装角度有什么讲究?

随着太阳能技术的日益普及,光伏板(也称为太阳能电池板)已成为我们日常生活中不可或缺的一部分。在安装光伏板时,选择合适的安装角度是一个至关重要的环节,它直接影响到光伏系统的效率和发电量。本文将探讨光伏板安装角…

RabiitMQ延迟队列(死信交换机)

Dead Letter Exchange(死信交换机) 在MQ中,当消息成为死信(Dead message 死掉的信息)后,消息中间件可以将其从当前队列发送到另一个队列中,这个队列就是死信队列。而 在RabbitMQ中,由…

Android14音频进阶:MediaPlayerService如何启动AudioTrack 上篇(五十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

正确入市时机3秒抓住,WeTrade众汇无偿实例分享

在上篇文章中,WeTrade众汇无偿分享如何3秒抓住正确入市的时机,今天让我们通过一个例子来验证这个策略的正确性。 对于突破策略,WeTrade众汇用了同样的图表来演示挤压交易。蓝色箭头表示变窄的区域,红色箭头表示烛台穿过下层。当它…

成功解决RuntimeError: batch2 must be a 3D tensor

成功解决RuntimeError: batch2 must be a 3D tensor。 🌵文章目录🌵 🌳引言🌳🌳问题初探:为什么会出现这个错误?🌳🌳解决方案:如何避免和修复这个错误&#x…

啤酒:探索精酿啤酒与川菜的麻辣味觉之旅

在中国的饮食文化中,川菜以其麻辣味道而闻名于世。当Fendi Club啤酒遇上川菜,会碰撞出怎样的味觉火花?今天,让我们一起踏上这场探索Fendi Club啤酒与川菜麻辣味觉之旅。 首先,让我们来了解一下Fendi Club啤酒。这款啤酒…

mfc110.dll是什么?解决mfc110.dll丢失windows系统常见问题

今天我在打开电脑软件时候,突然报错出现找不到mfc110.dll丢失,无法打开软件,我不知道是什么原因,后面找了很久才找到解决方法,那么mfc110.dll是什么?为什么会丢失和mfc110.dll解决方法是什么,今…

年货大数据(年货节数据/电商行业数据):龙年再添两个黑马食品饮料品类,增长11倍!

年货零食三大件:牛奶、糖果和炒货。今年再多两大件,礼品卡券和腊味。 根据鲸参谋数据显示,今年坚果炒货、糖果、牛奶乳品、饮料等品类依然是长期的年货热门品类。1月前三周,牛奶乳品销量环比增长68%,销售额环比增长55…

ThreadLocal及阿里(TransmittableThreadLocal,TTL)分析

TTL类关系图 ThreadLocal <- InheritableThreadLocal <- TransmittableThreadLocal 1. ThreadLocal ThreadLocal 类提供线程本地&#xff08;局部&#xff09;变量。每个线程都有自己独立初始化的变量副本。 TheadLocal 允许我们存储仅由特定线程访问的数据&#xff0c;…

C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法

目录 一、使用的方法 1.使用Array.Copy方法 2.Copy(Array, Int32, Array, Int32, Int32) 3. 使用自定义的方法 二、实例 1.示例1&#xff1a;使用Array.Copy方法 2.示例2&#xff1a;使用自定义的方法 一、使用的方法 1.使用Array.Copy方法 首先定义了一个名为InsertAr…

可解释性AI(XAI):开启AI决策过程透明化,重塑信任与解决伦理偏见

文章目录 每日一句正能量前言可解释性AI的定义与重要性什么是可解释性&#xff1f;促进技术应用的可信度提高技术的透明度保护隐私和数据权益促进AI的社会接受度 可解释性AI的挑战与难点可解释性AI的应用场景后记 每日一句正能量 宁可因高目标而脖子硬&#xff0c;也不要为低目…

Java+SpringBoot:构建稳定高效的计算机基础教学平台

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

《Java程序设计》实验报告(四)之数据库操作

实验内容及步骤&#xff1a; 数据库的建立、删除等。&#xff08;1&#xff09;代码&#xff1a; package liyuxuan.study.java; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class CreateD…

npm 上传一个自己的应用(5) 删除自己发送到NPM官网的指定工具版本

上文 npm 上传一个自己的应用(4) 更新自己上传到NPM中的工具版本 并就行内容修改 我们更新了项目内容 然后更新了项目版本 那么 一些已经过时 甚至 当时上传的东西就有问题 我们又该怎么删除版本呢&#xff1f; 首先 我们还是要先登录 npm npm login然后 根据要求填写 Userna…

迅为RK3588开发板windows与开发板互传使用U盘进行拷贝

1 将 U 盘(U 盘的格式必须为 FAT32 格式&#xff0c;大小在 32G 以下)插到开发板的 usb 接口&#xff0c;串口打印信息如下所示&#xff0c;U 盘的设备节点是/dev/sdb4。U 盘的设备节点不是固定的&#xff0c;根据实际情况来查看设备节点。 2 输入以下命令挂载 U 盘&#xff0c…

新版本nginx安装提示需要openssl的问题

新版本的nginx安装的时候未发现openssl的路径&#xff0c;有两种方式解决 方式一&#xff1a; 找到本地nginx的解压目录中 &#xff0c;例如我的放到root下面了。 进入 /root/nginx1.24.0/auto/lib/openssl/conf 目录下修改内容 &#xff0c;这两行都需要修改&#xff0c;…