Linux(6):文件与文件系统的压缩,打包与备份

news2024/9/17 8:47:47

压缩文件的用途与技术

由于 1 byte = 8 bits ,所以每个byte当中会有8个空格,而每个空格可以是0,1

其实文件里面有相当多的『空间』存在,并不是完全填满的,而『压缩』的技术就是将这些『空间』填满,以让整个文件占用的容量下降。
『压缩过的文件]并无法直接被操作系统所使用的,因此,若要使用这些被压缩过的文件数据,则必须解压缩』将他『还原』回来未压缩前的模样。

压缩比等于压缩后与压缩的文件所占用的磁盘空间大小的比值。

Linux 系统常见的压缩指令

常见的几个压缩拓展名:
在这里插入图片描述

gzip,zcat/zmore/zless/zgrep

gzip 可以解开:compress,zip 与 gzip 等软件所压缩的文件。gzip 所建立的压缩文件为 *.gz。

gzip [-cdtc#] 档名

在这里插入图片描述可以使用 zcat 读取压缩文件

zcat 档名

cat/more/less 可以使用不同的方式来读取纯文本档;
zcat/zmore/zless 则可以对应于 cat/more/less 的方式来读取纯文本档被压缩后的压缩文件;
由于 gzip这个压缩指令主要想要用来取代compress 的,所以不但 compress 的压缩文件案可以使用gzip 来解开,同时 zcat这个指令可以同时读取compress 与gzip 的压缩文件。
egrep可以用来搜寻关键词:从文字压缩文件当中找数据

bzip2,bzcat/bzmore/bzless/bzgrep

bzip2 [-cdkzv#] 档名
bzcat 档名.bz2

在这里插入图片描述
bzip2 压缩时间比 gzip 久,压缩率高。

xz,xzcat/xzmore/xzless/xzgrep

xz [-dtlkc#] 档名
xcat 档名.xz

在这里插入图片描述
它可以将 gzip压缩比的21% 进一步优化到 15%。时间久。。。。

打包指令:tar

打包与压缩:

tar [-zl-jl-I] [cv] [-f 待建立的新档名] filename...

查看档名:

tar [-zl-jl-I] [tv] [-f 已有档名]

解压缩:

tar [-zl-jl-I] [xv] [-f 已有档名] [-C 目录]

在这里插入图片描述
仅解开单一文件:使用 -jtv 找到要的档名,将该档名解开

tar -jtv -f /root/etc.tar.bz2|gep '要的文档名'
## 找到后,解开
tar -jxv -f 压缩包.tar.baz2 待解开的文档名

打包某目录,但不含某些文件:使用 --exclude

tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc*

仅备份比某个时刻新的文件:使用 --newer-mtime

tar -jcv -f /root/etc.newer.then.paswd.tar.bz2 --newer-mtime="2015/06/17" /etc/*

tar 打包出来的文件有没有进行压缩所得到文件称呼不同:
如果仅是打包而已,就是[tar -cv -f file.tar]而已,这个文件我们称呼为 tarfile
如果还有进行压缩的支持,例如[tar-jcv -f file.tar.bz2]时,称呼为 tarball

在 tar 的使用中,有一种方式最特殊,那就是透过标准输入输出的数据流重导向(standard input/standard output),以及管线命令(pipe)的方式,将待处理的文件一边打包一边解压缩到目标目录去。

tar -cvf - /etc | tar -xvf -
#这个动作有点像是cp -r /etc /tmp
#要注意的地方在于输出档变成-而输入档也变成-,又有一个Ⅰ存在~
#一这分别代表standard output , standard input与管线命令
#简单的想法中,可以将 – 想成是在内存中的一个装置(缓冲区)。

XFS 文件系统的备份与还原

xfsdump 除了可以进行文件系统的完整备份外,还可以进行累积备份。
累积备份:在第一次使用xfsdump进行完整备份后,等过一段时间的文件系统自然运作后,再进行第二次xfsdump时,就可以选择累积备份了,此时新备份的数据只会记录与第一次完整备份所有差异的文件。
第一份备份一定是完整备份,完整备份在 xfsdump 当中被定义为 level 0。第二次备份时,被定义为 level1,比较过后,备份有变化的文件。。。

xfsdump 限制:
1.xfsdump 不支援没有挂载的文件系统备份,所以只能备份已挂载的;
2.xfsdump 必须使用root的权限才能操作(涉及文件系统的关系);
3.xfsdump 只能备份XFS 文件系统;
4.xfsdump 备份下来的数据文件或储存媒体)只能让 xfsrestore 解析
5.xfsdump 是透过文件系统的UUID来分辨各个备份档的,因此不能备份两个具有相同UUID 的文件系统

xfsdump [-L S_label] [-M M_label] [-1 #] [-f 备份档] 待备份资料

在这里插入图片描述
特别注意,xfsdump 预设仅支持文件系统的备份,并不支持特定目录的备份
所以不能用 xfsdump去 备份/etc,因为 /etc 从来就不是一个独立的文件系统。

xfsrestore文件系统还原

xfsrestore -I
xfsrestore [-f 备份档] [-L S_label] [-s] 待复原目录
xfsrestore [-f 备份文件] -r 待复原目录
xfsrestore [-f 备份文件] -i 待复原目录

在这里插入图片描述

光盘写入工具

文本模式的刻录行为:
1.先将所需要备份的数据建置成为一个映像档(iso),利用 mkisofs 指令来处理;
2.将该映像文件刻录至光盘或 DVD 当中,利用 cdrecord 指令来处理。

mkisofs:建立映像档

mkisofs [-o 映像档] [-Jrv] [-V vol] [-m file] 待备份文件... -graft-point isodir=systemdir ...

在这里插入图片描述
光盘的格式一般称为 iso9660,这种格式一般仅支持旧版的 DOS 档名,亦即档名只能以8.3(文件名8个字符,扩展名3个字符)的方式存在。
如果加上 -r 的选项之后,那么文件信息能够被记录的比较完整,可包括 UID/GID 与权限等等。

一般预设的情况下,所有要被加到映像档中的文件都会被放置到映象文件中的根目录,如此一来可能会造成刻录后的文件分类不易的情况。所以,可以使用-graft-point这个选项,当你使用这个选项之后,可以定义位于映像文件中的目录。

可透过wodim来写入CD或DVD 刻录机

其他常见的压缩与备份工具

dd

dd 可以读取磁盘装置的内容(几乎是直接读取扇区"sector"),然后将整个装置备份成一个文件。

dd if="input_file" of="output_file" bs="block size" count="number"

在这里插入图片描述

默认 dd 是一个一个扇区去读/写的,而且即使没有用到的扇区也会倍写入备份档中。因此这个文件会变得跟原本的磁盘一模一样大。

dd 可备份完整的 partition 或 disk ,因为 dd 可读取磁盘的 sector 表面数据。

cpio

cpio 可以备份任何东西,包括装置设备文件

cpio -ovcB > [file|device] <=备份
cpio -ivcdu < [file|device] <=还原
cpio -ivct < [file|device] <=察看

在这里插入图片描述

cipo 必须要搭配类似 find 指令来读入欲备份的文件名数据

《鸟哥的Linux私房菜-基础篇》学习笔记

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

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

相关文章

AI“胡说八道”?怎么解?

原创 | 文 BFT机器人 01 引言 近年来&#xff0c;人工智能产业迅猛发展&#xff0c;大型语言模型GPT-4发展势头强劲&#xff0c;OpenAI推出ChatGPT、微软推出Bing、马斯克推出“最好的聊天机器人Grok”……科技巨头纷纷入局AI领域&#xff0c;引入人工智能作为办公工具的行业…

APP软件外包开发流程

外包APP软件项目的开发流程可以分为以下几个主要阶段&#xff0c;在整个流程中&#xff0c;沟通和合作是至关重要的&#xff0c;确保开发团队和客户之间有良好的沟通渠道&#xff0c;及时解决问题&#xff0c;保证项目按时交付。北京木奇移动技术有限公司&#xff0c;专业的软件…

unigui同页面内重定向跳转,企业微信内部应用开发获取用户code例子

procedure TMainForm.UniFormCreate(Sender: TObject); varurl: string;code: string; begin //如果没有code值&#xff0c;将进行重定向if UniApplication.Parameters.Values[code] thenbeginurl :https://open.weixin.qq.com/connect/oauth2/authorize?appid你们的企业ID&…

Word怎么看字数?简单教程分享!

“我在写文章时&#xff0c;总是想看看写了多少字。但是我发现我的Word无法看到字数。在Word中应该怎么查看字数呢&#xff1f;请帮帮我&#xff01;” Word是一个广泛使用的文档编辑工具。在我们编辑文章时&#xff0c;如果想查看写了多少字&#xff0c;也是可以轻松完成的。 …

Whatweb简单使用

目录 简介 安装 debian/ubtuntu redhat/centos 特性 使用 常用参数如下&#xff1a; whatweb -v whatweb --version whatweb -i 1.txt whatweb -v www.baidu.com 扫描等级 whatweb -a 4 www.baidu.com 扫描网段 whatweb --no-errors -t 255 192.168.71.0/24 导出…

Android : AlertDialog对话框、单选、多选、适配器-简单应用

示例图&#xff1a; 1 &#xff1a;创建 AlertDialog.Builder 对象&#xff1b; 2 &#xff1a;调用 setIcon() 设置图标&#xff0c; setTitle() 或 setCustomTitle() 设置标题&#xff1b; 3 &#xff1a;设置对话框的内容&#xff1a; setMessage() 还有其他方法来指定显示…

windows11上安装WSL

Windows电脑上要配置linux&#xff08;这里指ubuntu&#xff09;开发环境&#xff0c;主要有三种方式&#xff1a; 1&#xff09;在windows上装个虚拟机&#xff08;比如vmware&#xff09;。缺点是vmware加载ubuntu后系统会变慢很多&#xff0c;而且需要通过samba来实现window…

电线电缆、漆包线工厂开源MES/生产管理系统/云MES

万界星空科技专业的漆包线MES系统功能介绍&#xff1a; 从原材料出入库-拉丝机等设备管理-漆包线称重打印系统自动入库&#xff08;支持多台秤同时称重&#xff09;-建立销售报价、销售订单-生产订单-支持扫码出库及自动拣货出库-应收应付账款-对接各种其他系统及财务系统。 …

内网穿透的应用-如何在本地安装Flask,以及将其web界面发布到公网上并进行远程访问

轻量级web开发框架&#xff1a;Flask本地部署及实现公网访问界面 文章目录 轻量级web开发框架&#xff1a;Flask本地部署及实现公网访问界面前言1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 前言 本篇文章讲解如何…

qgis添加arcgis的mapserver

左侧浏览器-ArcGIS地图服务器-右键-新建连接 Folder: / 展开-双击图层即可

电脑软件:SmartSystemMenu(窗口置顶工具)介绍

目录 一、软件介绍 二、软件用途 三、安装教程 注意事项 四、功能介绍 五、软件设置 六、软件下载 一、软件介绍 SmartSystemMenu 是一款简单实用的 Windows 窗口增强工具&#xff0c;它可以为窗口的标题栏右键菜单新增 17 个新功能。 二、软件用途 SmartSystemMenu(窗口…

微信小程序完整实现微信支付功能(SpringBoot和小程序)

1.前言 不久前给公司实现支付功能&#xff0c;折腾了一阵子&#xff0c;终于实现了&#xff0c;微信支付对于小白来说真的很困难&#xff0c;特别是没有接触过企业级别开发的大学生更不用说&#xff0c;因此尝试写一篇我如何从小白实现微信小程序支付功能的吧&#xff0c;使用…

智能医疗越发周到!新的机器人系统评估中风后的活动能力

原创 | 文 BFT机器人 中风是在医疗界上最难的解决的病例之一&#xff0c;全球每年有超过1500万人中风&#xff0c;四分之三的中风患者的手臂和手部会出现损伤、虚弱和瘫痪。 许多中风患者日常生活是依靠他们强壮的手臂来完成的&#xff0c;从拿一些小东西到梳头&#xff0c;即…

python 如何利用everything的能力快速搜索兴趣文档

演示代码 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/23 17:10 file: python 如何通过everything搜索兴趣文档.py desc: xxxxxx """# region 引入必要的依赖 import os模块名 DebugInfo try:from Debu…

一些好用的前端小插件(转自知乎)

一些好用的前端小插件&#xff08;2&#xff09; 1. cropper.js Cropper.js 2.0 是一系列用于图像裁剪的 Web 组件。 官网地址&#xff1a;https://fengyuanchen.github.io/cropperjs/v2/zh/ 2. Vditor Vditor是一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得、…

【C++】标准模板库STL作业(其二)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

了解销售管理系统,看这篇就够了

在充满活力的现代商业环境中&#xff0c;高效的销售管理是成功的关键。 本文将全面介绍销售管理系统 及其对销售流程的变革性影响。 从潜在客户开发和机会管理到分析驱动的决策&#xff0c;销售管理系统旨在为销售团队提供提高生产力和绩效的工具。 本文分为销售管理系统的概念…

在springboot中实现WebSocket协议通信

前面介绍了使用netty实现websocket通信&#xff0c;有些时候&#xff0c;如果我们的服务并不复杂或者连接数并不高&#xff0c;单独搭建一个websocket服务端有些浪费资源&#xff0c;这时候我们就可以在web服务内提供简单的websocket连接支持。其实springboot已经支持了websock…

通俗理解词向量模型,预训练模型,Transfomer,Bert和GPT的发展脉络和如何实践

最近研究GPT&#xff0c;深入的从transfomer的原理和代码看来一下&#xff0c;现在把学习的资料和自己的理解整理一下。 这个文章写的很通俗易懂&#xff0c;把transformer的来龙去脉&#xff0c;还举例了很多不错的例子。 Transformer通俗笔记&#xff1a;从Word2Vec、Seq2S…