Linux嵌入式开发——压缩与解压缩

news2024/11/14 0:29:56

文章目录

  • Linux嵌入式开发——压缩与解压缩
    • 一、前期准备
    • 二、Linux下的压缩格式
    • 三、gzip压缩工具
      • 1、gzip压缩文件
      • 2、gzip压缩文件夹
    • 四、bzip2压缩工具
    • 五、tar打包工具
      • tar参数
      • 对.tar.bz2进行压缩和解压缩
        • 压缩
        • 解压缩
      • 对.tar.gz进行压缩和解压缩
        • 压缩
        • 解压缩
    • 六、其他格式的压缩和解压缩
      • 1、.rar格式
        • 压缩
        • 解压
      • 2、.zip格式
        • 压缩
        • 解压
    • 七、使用图形界面压缩

Linux嵌入式开发——压缩与解压缩

一、前期准备

首先我们需要在Windows下安装7-ZIP软件,这个比较简单,到官网去下载,然后安装即可。安装7-ZIP软件的主要原因是因为Linux下很多文件是.bz2,.gz结尾的压缩文件,而7-ZIP软件可以在Windows环境下将文件压缩为这些格式,便于我们进行交互。

二、Linux下的压缩格式

Linux下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz,其中.tar.bz2、.tar.gz使用的较多。

三、gzip压缩工具

1、gzip压缩文件

gzip工具负责压缩和解压缩.gz格式的压缩包,具体的使用方法如下所示。

我们首先创建一个文件夹,使用的命令如下所示:

mkdir gztest

之后进入这个文件夹:

cd gztest/

然后创建两个简单的文件:

touch a.c
touch b.c

之后在文件夹里面输入如下命令之后,我们可以看到文件夹里面的文件已经被我们压缩好了。

gzip a.c

在这里插入图片描述

然后我们进行解压缩,使用如下命令之后,我们会发现刚刚压缩的文件被解压缩了。

gzip -d a.c.gz

在这里插入图片描述

总结一下,就是我们压缩与解压缩文件,主要就是使用下面两个命令,当然也有其他功能,等我们去慢慢摸索。

gzip xxx        //压缩

gzip -d xxx.gz    //解压缩

2、gzip压缩文件夹

接下来我们要使用gzip命令去压缩文件夹,具体如何操作我们就来慢慢分析吧!

首先我们使用如下命令去压缩文件夹,压缩完成之后会发现文件夹本身没有任何变化,我们需要到文件夹里面去看看文件到底有没有被压缩,进去之后,我们会发现里面的文件是被压缩了的。

gzip -r gztest/

在这里插入图片描述

然后我们使用如下命令去对文件夹进行解压缩,之后就能发现我们的文件全被解压缩了。

gzip -rd gztest

在这里插入图片描述

好了,总而言之,我们对文件夹进行解压缩就是使用如下两个命令。

gzip -r xxx      //对文件夹进行压缩

gzip -rd xxx   //对文件夹进行解压缩

gzip虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。

四、bzip2压缩工具

和gzip类似,只是bzip2工具负责压缩和解压缩.bz2格式的压缩包。

我们首先将文件夹重新命名,使用的语句如下所示:

mv gztest bztest

然后我们在我们的文件夹输入我们的压缩命令,就可以看到我们的文件被压缩成了.bz2格式的文件了。

bzip2 -z a.c

在这里插入图片描述

然后我们输入我们的解压缩命令,即可解压缩我们的文件。

bzip2 -d a.c.bz2

在这里插入图片描述

总结一下,我们就是使用下面这两个命令对.bz2文件进行解压缩,但是值得注意的就是,这个好像不支持对于文件夹的压缩。

bzip2 -z xxx         //压缩

bzip2 -d xxx.bz2   //解压缩

五、tar打包工具

tar参数

  • -f:使用归档文件或 ARCHIVE 设备。
  • -c:创建新归档,创建压缩文件。
  • -x:从图档中解出文件,解压缩。
  • -j:使用bzip2压缩格式。
  • -z:使用gzip压缩格式。
  • -v:打印出命令执行过程。

具体如何使用,我们一步一步来进行介绍,首先输入如下命令,我们能看到我们的文件夹被打包成了一个.tar文件。

tar -vcf bztest.tar bztest

我们使用 -vcf 主要就是想创建一个新规档,并且使用,然后还要看到具体过程。

在这里插入图片描述

解包我们使用的是如下语句,不过在这之前,我们需要先删除原来的文件夹,然后就可以得到相应的解包文件。

rm bztest -rf
tar -vxf bztest.tar

在这里插入图片描述

总结一下,tar工具提供打包服务,就是将多个文件打包,具体操作如下所示:

tar -vcf test.tar test   //将test打包成test.tar

tar -vxf test.tar       //解包 

上面的tar命令只提供了打包和解包的功能,tar在提供打包和解包的同时使用gzip/bzip2进行压缩,实现类似windwos下winRAR软件的命令。

对.tar.bz2进行压缩和解压缩

压缩

如果我们需要把文件压缩为.tar.bz2格式,我们就可以使用如下语句:

tar -vcjf bztest.tar.bz2 bztest

在这里插入图片描述

解压缩

接下来我们就是进行解压缩了,具体操作如下所示,首先还是要删除原来的文件,再输入如下命令。

rm bztest -rf
tar -vxjf bztest.tar.bz2

在这里插入图片描述

总结一下,我们的压缩与解压缩操作大概如下所示

tar -vxjf xxx.tar.bz2    解压缩

tar -vcjf xxx.tar.bz2 xxx 压缩

对.tar.gz进行压缩和解压缩

这个其实和上面那个是类似的,只要把bz2换成gz即可,我们就不详细介绍了。

压缩

如果我们需要把文件压缩为.tar.gz格式,我们就可以使用如下语句:

tar -vcjf bztest.tar.gz bztest

在这里插入图片描述

解压缩

接下来我们就是进行解压缩了,具体操作如下所示,首先还是要删除原来的文件,再输入如下命令。

rm bztest -rf
tar -vxjf bztest.tar.gz

在这里插入图片描述

总结一下,我们的压缩与解压缩操作大概如下所示:

tar -vxzf xxx.tar.gz    //解压缩

tar -vczf xxx.tar.gz xxx  //压缩     

六、其他格式的压缩和解压缩

1、.rar格式

在我们操作之前,我们需要先安装rar具体的命令如下所示,并且将文件夹改了一下名字。

mv bztest test
sudo apt-get install rar

压缩

之后我们输入我们的压缩命令,便可得到一个.rar文件。

rar a test.rar test

在这里插入图片描述

解压

我们输入我们的解压命令即可,但是在这之前需要我们删除源文件夹。

rm test -rf
rar x test.rar

在这里插入图片描述

总结一下,关于rar格式的文件,我们主要使用下面的命令。

rar x xxx.rar      //解压缩

rar a xxx.rar xxx   //压缩

2、.zip格式

压缩

之后我们输入我们的压缩命令,便可得到一个.zip文件。

zip -rv test.zip test

在这里插入图片描述

解压

我们输入我们的解压命令即可,但是在这之前需要我们删除源文件夹。

rm test -rf
unzip test.zip

在这里插入图片描述

七、使用图形界面压缩

这个虽然简单,但是不建议使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt扫盲-网络编程概述

网络编程概述一、Qt网络编程概述二、Qt对Http,FTP应用层协议支持三、TCP通信编程支持四、UDP通信编程支持五、主机信息的获取六、网络代理七、底层管理的支持一、Qt网络编程概述 Qt Network模块提供了允许我们编写TCP/IP客户端和服务器的类。它提供了低级类来完成基…

【Java寒假打卡】JavaWeb-Session

【Java寒假打卡】JavaWeb-Session概述常用的方法HttpSession的获取HttpSession的使用概述 常用的方法 HttpSession的获取 HttpSession的使用 在第一个Servlet中获取请求的用户名获取HttpSession对象将用户名设置到共享数据中在第二个Servlet中获取HttpSession对象获取共享数据用…

java8新特性

接口中默认方法修饰为普通方法,实现接口时不需要重写方法Lambda表达式Stream流并行流原理校验当前对象是否为null当前对象为null,设置默认值 接口中默认方法修饰为普通方法Lambda表达式使用Lambda表达式 依赖于函数接口 在接口中只能够允许有一个抽象方法在函数接…

SpringCloud笔记

2023年最新笔记,全文约 3 万字,蕴含 Spring Cloud 常用组件 Nacos、OpenFeign、Seata、Sentinel 等 〇、简介 什么是Spring Cloud? ​ Spring Cloud是一系列框架的有序集合,是一种基于微服务的分布式架构技术。它利用 Spring Boot…

HBuilder的安装与试用

准备把前端框架Layui仔细学习一遍(虽然Layui已经过了最流行的时候,但是很多项目都在用它),在B站找了一套《Layui框架精讲全套视频教程》,视频作者实操Layui时用的工具很方便,从弹幕中看到说用的是HBuilder&…

Springcloud 笔记

微服务架构微服务架构是一种架构模式,它体长将单一应用程序划分成一组小的服务,服务之间相互协调,互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制**(如HTTP)互相协作…

电商直通车主图设计教程

商直通车主图设计教程!无门槛在线设计,零基础轻松入门的电商设计工具,轻松就能搞定的主图设计工具,下面跟着小编的设计教程,一起学习如何使用在线工具乔拓云轻松设计专属的商品直通车主图,在线模板轻松设计…

Cadence PCB仿真使用Allegro PCB SI生成延迟仿真报告及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 本文简单介绍使用Allegro PCB SI生成网络的延迟性能评估的报告的方法,及延迟报告要点导读。 2,生成报告 第1步,选择需要生成报告的网络,然后单击右…

深度估计算法原理与论文解读

论文地址: Monocular Depth Estimation Using Laplacian Pyramid-Based Depth Residuals | IEEE Journals & Magazine | IEEE Xplore 深度估计算法原理 1.深度估计任务概述 深度估计,即通过输入的彩色图像,获得每个像素点离相机距离的远近(热度图) ,热度图的深浅表…

Linux内核显卡驱动(LVDS)初探

目录 0. 前言 1. menuconfig 2. 编译报错与打补丁 3. 设备树与display-timings 4. 拓展:RGB24 0. 前言 这次的工作主要是把某项目设备上(iMX6DL)的内核版本从 4.19.x 升级到 5.15.32,是作为该项目整个BSP升级计划的一部分。 该内核升级工作移交给…

Spring Cloud Alibaba商城实战项目基础篇(day03)

五、后台管理 5.1、商品服务 5.1.1、三级分类 5.1.1.1、查询所有菜单与子菜单 我们需要维护所有菜单以及各种子菜单,子菜单里面可能还有子菜单,所以我们采用递归的方式进行书写。 我们先在CategoryController中修改list方法,让他以组装树…

Day868.索引(上) -MySQL实战

索引(上) Hi,我是阿昌,今天学习记录的是关于索引(上)的内容。 某一个 SQL 查询比较慢,分析完原因之后,可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引&…

linux部署java项目cpu占用100%的排除故障

用top -c命令查看cpu占用高的进程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/12af3f060fb84ce98b24c7247546b50b.png 发现cpu占用为99%的进程pid为24857 用top -Hp 24857查看cpu占用最高的线程 发现占用cpu97.3%的线程id为24926 将24926转为16进制 通过jstack查看进…

袋式除尘器—选型计算

1.处理气体量的计算计算袋式除尘器的处理气体时,首先要求出工况条件下的气体量,即实际通过袋式除尘器的气体量,并且还要考虑除尘器本身的漏风量。这些数据,应根据已有工厂的实际运行经验或检测资料来确定,如果缺乏必要…

Day09 - 子类父类多继承多层继承多态

1. 子类中访问父类中的私有属性和私有方法 如果想使用父类中的私有属性和私有方法,那么就需要在父类中,为这些私有的属性和方法,提供相应的公有的接口方法来间接访问2. 如何为父类中的属性进行初始化 在子类中如果定义了自己的初始化方法,那么这时父类的初始化方法就不会再执…

尚硅谷AJAX教程

优点&#xff1a;无需刷新页面获取数据&#xff0c;允许你根据用户事件来更新部分页面内容 缺点&#xff1a;没有浏览历史&#xff0c;不能回退&#xff0c;存在跨域&#xff0c;SEO不友好 原生XHR请求 get请求 <body><button>获取数据</button><scri…

弹性可微调,基于LCN光敏材料的触觉模拟系统

对于AR/VR体验来讲&#xff0c;体感、触觉模拟很重要&#xff0c;但现阶段还没有一种方便消费者使用、轻便的体感方案&#xff0c;因此Meta等公司不断在探索更好的体感技术。比如近期&#xff0c;Nature发表了一项来自荷兰埃因霍芬理工大学的新研究&#xff0c;该研究由Meta Re…

svg的path标签的d属性

<svgwidth"200"height"200"viewBox"0 0 200 200"style"border: 1px solid red"><pathd"M10 10 L110 10 L110 110 L10 110 Z"fill"none "stroke"green"></path></svg>运行效果…

Redux Toolkit 调用 API 的四种方式

Redux Toolkit 调用 API 的四种方式 上篇笔记写的比较乱&#xff0c;加上这回又学了点新的东西&#xff0c;所以重新整合一下。 本地 API 用的是 json-server&#xff0c;端口设置在 3005&#xff0c;数据包含&#xff1a; {"users": [{"id": 1,"n…

数据分析-深度学习 Pytorch Day9

迁移学习通过利用数据、任务或模型之间的相似性&#xff0c;将在旧领域学习过的模型应用于新领域来求解新问题。生活中常用的“举一反三”、“照猫画虎”就很好地体现了迁移学习的思想。利用迁移学习的思想&#xff0c;可以将已有的一些训练好的模型&#xff0c;迁移到我们的任…