Linux常见压缩指令小结

为什么需要压缩技术

我们都知道文件是以byte作为单位的,如果我们的文件仅仅在低位占一个1

0000 0001

这种情况我们完全可以压缩一下,将高位的0全部抹掉即可。
如上所说是一种压缩技术,还有一种就是将1111(此处省略96个)一共100个1,用类似于"100个1"的方式。

zip/unzip

命令选项

在这里插入图片描述
在这里插入图片描述

递归基础压缩

为了方便演示压缩,我们在tmp下创建一个包含3个文件的zipDir

[root@localhost tmp]# mkdir zipDir
[root@localhost tmp]# cd zipDir
[root@localhost zipDir]# touch file1
[root@localhost zipDir]# touch file2
[root@localhost zipDir]# touch file3

使用最高级别9,将zipDir文件夹下所有文件或者文件夹通通压缩到zipDir.zip中

zip -9r  /tmp/zipDir.zip /tmp/zipDir/

排除指定文件压缩

例如我们希望压缩zipDir目录时,不压缩zipDir3

zip -9r /tmp/zipDirWithoutFile3.zip  /tmp/zipDir    -x "/tmp/zipDir/file3"

如下图可以看到压缩过程中,并没有包括file3

在这里插入图片描述

删除压缩包中的文件

将zipDir.zip中的file3文件从压缩包中删除,命令如下所示,注意-d后面要制定和压缩包中相同的文件名所在操作系统中的路径

 zip /tmp/zipDir.zip -d   /tmp/zipDir/file3

在这里插入图片描述

补充文件到压缩包

上文中,我们将file3中zipDir.zip中删除,我们希望将其添加到压缩包中,就可以使用下面这条命令

zip -u  /tmp/zipDir.zip  /tmp/zipDir/file3

在这里插入图片描述
这条指令同样支持将文件夹下的指定内容添加到压缩包中,命令如下

# 将file打头的文件添加到压缩包中
zip -u  /tmp/zipDir.zip  /tmp/zipDir/file*

解压缩

-o:解压时无脑覆盖目标路径文件
-x 解压时若目标文件夹有该文件则不覆盖
-d 指定目标解压位置

unzip -o  /tmp/zipDir.zip -x zipDir/file3 -d  /tmp/unzipDir/

在这里插入图片描述

gzip/gunzip

选项

该命令只能对文件进行压缩,若指定目录也仅仅是对目录下的文件进行压缩。
在这里插入图片描述

递归压缩文件

同样我们为演示gzip增加测试文件夹

mkdir gzipDir;cd gzipDir;touch file1;touch file2;touch file3;
# 因为gzip无法直接压缩文件夹所以需要先用zip压缩一下文件夹zip -r /tmp/gzipDir.zip /tmp/gzipDir/;# gzip以最高级别压缩比压缩文件,并显示压缩过程gzip -9v /tmp/gzipDir.zip

在这里插入图片描述

显示压缩比

gzip -l /tmp/gzipDir.zip.gz

在这里插入图片描述

解压缩到当前目录

gzip -d /tmp/gzipDir.zip.gz

bzip2/bunzip2

命令选项

在这里插入图片描述

与gzip差不多,都是用于压缩文件的,压缩时会删除文件的信息,但是用如下选项即可完成使用最高压缩比,并且压缩时不删除源文件,显示压缩进度的完成压缩

bzip2 -9vk /tmp/*

在这里插入图片描述

解压缩同样使用-d即可。

tar

选项

该指令仅仅是对文件或者文件夹做打包而已,对应选项如下

在这里插入图片描述
在这里插入图片描述

普通压缩

创建示例文件夹和文件

 mkdir tarDir;cd tarDir;touch file1;touch file2;touch file3;

显示过程并新建文件的执行压缩

tar -cvf  /tmp/tardir.tar /tmp/tarDir/

在这里插入图片描述

调用gzip、bzip2压缩

调用gzip压缩,添加一个-z即可

tar -zcvf tardir.tar.gz tardir.tar

调用bz2压缩

tar -jcvf tardir.tar.bz2 tardir.tar

解压缩

将上文的c改为x即可

例如上文压缩原始压缩文件tardir.tar,我们压缩命令为

tar -xvf tardir.tar

gz结尾的tar文件,则用

tar -zxvf tardir.tar.gz

bz2结尾的tar文件则用

tar -jxvf tardir.tar.bz2

dd

常用于文件备份,将指定文件输出到对应文件夹

在这里插入图片描述

备份示例

将/etc/inittab备份至/etc/inittab.bak

dd if=/etc/inittab of=/etc/inittab.bak

我们都知道操作系统存储最基础单位为块。可以看到备份过程中,用了0+1的块。说明使用了0个完整的块+1个不到的块完成文件备份。
在这里插入图片描述

cpio

选项

该命令也是用于文件备份和还原的

在这里插入图片描述

备份

将tarDir备份到tmp的backDir.cpio中

find /tmp/tarDir/ | cpio -ocvB >/tmp/backDir.cpio

在这里插入图片描述

恢复

为了演示还原,笔者将被压缩的源文件删除,使用cpio将直接备份的文件原原本本还原为原来路径的原来文件,如下

cpio -icduv < /tmp/backDir.cpio

在这里插入图片描述

参考文献

鸟哥的Linux私房菜

循序渐进Linux(第2版)

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

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

相关文章

mysql执行带函数命令的sql脚本报错

一、前言 开发给了一个带函数的sql文件让我执行&#xff0c;但是执行导入时报以下错误 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled 二、解决 在数据库命令行中执行以下命令&#xff08;临时生效&…

HarmonyOS4.0从零开始的开发教程11给您的应用添加弹窗

HarmonyOS&#xff08;十&#xff09;给您的应用添加弹窗 概述 在我们日常使用应用的时候&#xff0c;可能会进行一些敏感的操作&#xff0c;比如删除联系人&#xff0c;这时候我们给应用添加弹窗来提示用户是否需要执行该操作&#xff0c;如下图所示&#xff1a; 弹窗是一种…

AI:99-基于深度学习的飞机故障检测与维修

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的核心代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新…

【pycharm】Pycharm中进行Git版本控制

本篇文章主要记录一下自己在pycharm上使用git的操作&#xff0c;一个新项目如何使用git进行版本控制。 文章使用的pycharm版本PyCharm Community Edition 2017.2.4&#xff0c;远程仓库为https://gitee.com/ 1.配置Git&#xff08;File>Settings&#xff09; 2.去Gitee创建…

记录一次云原生线上服务数据迁移全过程

文章目录 背景迁移方案调研迁移过程服务监控脚本定时任务暂停本地副本服务启动&#xff0c;在线服务下线MySQL 数据迁移Mongo 数据迁移切换新数据库 ip 本地服务启动数据库连接验证服务打包部署服务重启前端恢复正常监控脚本定时任务启动旧服务器器容器关闭 迁移总结 背景 校园…

机器学习基本概念介绍 2023

笔记来源于&#xff1a; https://www.youtube.com/watch?vphQK8xZpgoU&t172s https://www.youtube.com/watch?vXLyPFnephpY&t645s Machine/Deep Learning 机器学习概况来说&#xff0c;让机器具备自动找函式的能力 &#xff08;Machine Learning 约等于 Looking …

智能优化算法应用:基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.飞蛾扑火算法4.实验参数设定5.算法结果6.…

订单系统的设计与海量数据处理实战

概述 订单系统可以说是整个电商系统中最重要的一个子系统&#xff0c;因此订单数据可以算作电商企业最重要的数据资产。订单系统从代码上来说可分为两部分&#xff1a;订单程序和历史订单处理程序。数据存储进行分库分表。 订单系统业务分析 对于一个合格的订单系统&#xf…

如何使用bash写脚本

本章主要介绍如何使用bash写脚本。 了解通配符了解变量了解返回值和数值运算数值的对比判断语句循环语句 grep的用法是“grep 关键字 file”&#xff0c;意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/me…

JVM进程缓存

引言 缓存在日常开发中启动至关重要的作用&#xff0c;由于是存储在内存中&#xff0c;数据的读取速度是非常快的&#xff0c;能大量减少对数据库的访问&#xff0c;减少数据库的压力。我们把缓存分为两类&#xff1a; 分布式缓存&#xff0c;例如Redis&#xff1a; 优点&…

Java项目-瑞吉外卖Day4

实现文件的上传下载&#xff1a; 前端代码&#xff1a; 对文件的操作就是对流的操作。 上传文件的后端代码&#xff0c;需要注意MultipartFile的名字必须与前端相对&#xff1a; 为文件存储位置进行动态设置&#xff0c;配置application.xml 在CommonController中设置属性读…

Nodejs后端+express框架

前言 基于vue3Node后台管理项目&#xff0c;补充nodejs和express相关知识。 文章目录 一&#xff0c;express 1.官网 Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 2.安装 npm install express --save 二、MongoDB 特点 非关…

java之SpringBoot开发实用篇

MENU SpringBoot开发实用篇KF-1.热部署KF-1-1.手动启动热部署KF-1-2.自动启动热部署KF-1-3.参与热部署监控的文件范围配置KF-1-4.关闭热部署 KF-2.配置高级KF-2-1.ConfigurationPropertiesKF-2-2.宽松绑定/松散绑定KF-2-3.常用计量单位绑定KF-2-4.校验KF-2-5.数据类型转换 KF-3…

【头歌系统数据库实验】实验8 SQL的复杂多表查询-2

目录 第1关&#xff1a;基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id 第2关&#xff1a;用ANY/ALL实现查询2019级选手&#xff08;user_id前4位为2019&#xff09;满足比2020级其中一个选手注册时间早即可的选手 第3关&#xff1a;用聚集查询…

python zblog API实现类似XMLRPC/发布文章

我发现python对Zblog的XML发布并不友好&#xff0c;虽然也有对应的模块&#xff0c;但是远远没有XPCRPC更直接方便&#xff0c;但是使用xmlRpc是直接给发布文章带来了不小的便利&#xff0c;但是对系统也并不友好&#xff0c;但是zblog也开放了Api&#xff0c;但是干部子弟不乐…

UE小:物品拼装功能

蓝图B1的实现步骤&#xff1a; 获取玩家控制器和视角&#xff1a;首先获取玩家控制器&#xff0c;然后使用Deproject Screen to World节点将屏幕上的鼠标位置转换为世界空间中的一条射线。 射线检测&#xff1a;使用Line Trace by Channel或Line Trace for Objects节点发射射线…

《信息技术时代》期刊杂志论文发表投稿

《信息技术时代》期刊收稿方向&#xff1a;通信工程、大数据、计算机、办公自动化、信息或计算机教育、电子技术、系统设计、移动信息、图情信息研究、人工智能、智能技术、信息技术与网络安全等。 刊名&#xff1a;信息技术时代 主管主办单位&#xff1a;深圳湾科技发展有限…

05-详解调用服务时负载均衡的配置及其原理

负载均衡 负载均衡的原理(通用) LoadBalanced注解用来拦截它所标记的RestTemplate发起的http请求, 底层是利用了一个名为Ribbon的组件来实现负载均衡功能(Cloud高版本已经弃用) LoadBalancerInterceptor的intercept方法会对RestTemplate的请求进行拦截 public class LoadBal…

【Linux】使用Bash和GNU Parallel并行解压缩文件

介绍 在本教程中&#xff0c;我们将学习如何使用Bash脚本和GNU Parallel实现高效并行解压缩多个文件。这种方法在处理大量文件时可以显著加快提取过程。 先决条件 确保系统上已安装以下内容&#xff1a; BashGNU Parallel 你可以使用以下命令在不同Linux系统上安装它们&am…

【数据库】分支与循环函数存储过程

目录 函数 【1】 【2】 【3】❗ 【4】 存储过程 思考&分析 函数 【1】 --&#xff08;1&#xff09;定义一个根据学生姓名查询该生学习课程的函数stu_count。 --create function stu_count(sname char(8))--学生姓名 --returns char(12)--学习课程 --begin --…