当前位置: 首页 > news >正文

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版)

相关文章:

Linux常见压缩指令小结

为什么需要压缩技术 我们都知道文件是以byte作为单位的&#xff0c;如果我们的文件仅仅在低位占一个1 0000 0001这种情况我们完全可以压缩一下&#xff0c;将高位的0全部抹掉即可。 如上所说是一种压缩技术&#xff0c;还有一种就是将1111(此处省略96个)一共100个1&#xff0…...

OpenSSL的源码在哪里下载?

官方网站去下载&#xff0c;网址&#xff1a; https://www.openssl.org/source/ 比较老的版本的下载页面地址&#xff1a; https://www.openssl.org/source/old/ 由于某面板的OpenSSL模块的安装配置语句如下&#xff1a; --with-openssl/root/rpmbuild/BUILD/openssl-1.0.2u所…...

使用create-react-app脚手架创建react项目

文章目录 1、安装create-react-app脚手架2、创建 React 项目&#xff0c;项目名为 react-demo3、项目创建成功4、使用vscode打开项目并运行5、项目运行成功node_modules&#xff1a;存放项目所依赖的一些第三方包文件public&#xff1a;静态资源文件夹src:源码文件夹其它文件 1…...

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ &#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 ​ 目录 &#x1f608;1. 初识…...

JVM基础扫盲

什么是JVM JVM是Java设计者用于屏蔽多平台差异&#xff0c;基于操作系统之上的一个"小型虚拟机"&#xff0c;正是因为JVM的存在&#xff0c;使得Java应用程序运行时不需要关注底层操作系统的差异。使得Java程序编译只需编译一次&#xff0c;在任何操作系统都可以以相…...

SpringBoot基于gRPC进行RPC调用

SpringBoot基于gRPC进行RPC调用 一、gRPC1.1 什么是gRPC&#xff1f;1.2 如何编写proto1.3 数据类型及对应关系1.4 枚举1.5 数组1.6 map类型1.7 嵌套对象 二、SpringBoot gRPC2.1 工程目录2.2 jrpc-api2.2.1 引入gRPC依赖2.2.2 编写 .proto 文件2.2.3 使用插件机制生产proto相关…...

浏览器的事件循环机制(Event loop)

事件循环 浏览器的进程模型 何为进程&#xff1f; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这块内存空间简单的理解为进程 每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;即使要通信&#xff0c;也需要双方同意。 何为线程&#xff1f; …...

THEMIS---Beta Sprint Summary Essay Blog

Which course does this assignment belong to2301-MUSE社区-CSDN社区云What are the requirements for this assignmentbeta SprintThe goal of this assignmentTo summarize the beta task progress and the teams sprintsTeam NameThemisTop-of-the-line collection of essa…...

Vue中实现分布式动态路由的基本实现步骤介绍

设想一下&#xff0c;我们在做一个体量非常大的项目&#xff0c;这个项目有很多的模块和相当多的页面。当我们想修改一个路由的时候&#xff0c;我们打开了router文件夹下的index.js文件时&#xff0c;一串长到鼠标滚轮需要滚大半天才滚到底的路由简直让人头皮发麻。 在开始之前…...

【Leetcode】计算器

思路 用栈来完成&#xff1b; 考虑到运算关系&#xff0c;先乘除后加减&#xff1b;此外&#xff0c;一般计算式首个数字式正数&#xff1b;判断字符是否为数字&#xff0c;str.isdigit()字符转数字&#xff1a;ord(str) - ord(‘0’)遇到加减符&#xff0c;压栈数字&#xf…...

巧妙的使用WPF中的资源

其实&#xff0c;在wpf中&#xff0c;最核心的就是xaml&#xff0c;因为只有xaml&#xff0c;才能体现出用的是wpf&#xff0c;而不是普通的cs文件&#xff0c;cs文件在winform中等等程序都可以使用的&#xff0c;唯独xaml才是wpf中最重要的&#xff0c;最精华的东西&#xff0…...

多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现RIME-…...

【AIGC重塑教育】AI大模型驱动的教育变革与实践

文章目录 &#x1f354;现状&#x1f6f8;解决方法✨为什么要使用ai&#x1f386;彩蛋 &#x1f354;现状 AI正迅猛地改变着我们的生活。根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一…...

【力扣100】2.两数相加

添加链接描述 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Op…...

算法leetcode|93. 复原 IP 地址(多语言实现)

文章目录 93. 复原 IP 地址&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 93. 复原 IP 地址&#xff1a; 有效 IP …...

TOGAF—架构(Architecture)项目管理

一、简介 1.1概述 架构(Architecture)项目在本质上通常是复杂的。他们需要适当的项目管理来保持正轨并兑现承诺。本指南适用于负责规划和管理架构(Architecture)项目的人员。我们解释了如何用事实上的方法和标准(如PRINCE2或PMBOK)来补充TOGAF架构开发方法(ADM),以加…...

MVVM前端设计模式的发展与应用

在MVC模式中&#xff0c;随着代码量越来越大&#xff0c;主要用来处理各种逻辑和数据转化的Controller首当其冲&#xff0c;变得非常庞大&#xff0c;MVC的简写变成了Massive-View-Controller&#xff08;意为沉重的Controller&#xff09; 我曾经接手老项目&#xff0c;sprin…...

redis:二、缓存击穿的定义、解决方案(互斥锁、逻辑过期)的优缺点和适用场景、面试回答模板和缓存雪崩

缓存击穿的定义 缓存击穿是一种现象&#xff0c;具体就是某一个数据过期时&#xff0c;恰好有大量的并发请求过来&#xff0c;这些并发的请求可能会瞬间把DB压垮。典型场景就是双十一等抢购活动中&#xff0c;首页广告页面的数据过期&#xff0c;此时刚好大量用户进行请求&…...

php的Url 安全的base64编码解码类

/*** Url安全的Base64编码方法* author JerryLi* version 20231217*/ final class UrlSafeB64Fun{/*** 编码* param string $sData 原始字符串* return string*/static public function encode(string $sData): string{$aTmp base64_encode($sData);return strtr($aTmp, [>…...

安全CDN有什么作用,安全CDN工作原理是什么?

一、CDN的应用场景 CDN技术可以应用于各种类型的网站和应用程序&#xff0c;特别是对于以下几种场景&#xff0c;CDN的作用尤为明显&#xff1a; 1. 高流量网站&#xff1a;对于流量较大的网站&#xff0c;CDN可以将网站的内容分发到全球各地的节点上&#xff0c;从而分担服务…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...