gzip,bzip2,xz,tar-读书笔记(九)

gzip 将文件进行压缩

在Linux系统中,gzip 是一个压缩和解压文件的命令工具。它使用LZ77压缩算法及霍夫曼编码(Huffman Coding)来压缩文件,通常用来减少文件的大小,以节约磁盘空间或减少网络传输的时间。

gzip 命令的常见参数及其作用如下:

  • -c:将压缩的数据输出到标准输出,而不是写入文件。
  • -d 或 --decompress:解压缩文件。
  • -r 或 --recursive:递归地压缩或解压缩目录及其中所有文件。
  • -l 或 --list:列出压缩文件的详细信息,而不解压。
  • -f 或 --force:强制覆盖已存在的文件。
  • -t 或 --test:测试压缩文件是否完整。
  • -v 或 --verbose:在压缩或解压缩时显示详细的过程信息。
  • -S 或 --suffix:指定压缩后文件的后缀,默认是 .gz。

举例:

  1. 解压缩文件:
gzip -dvf myfile.txt.gz

这个命令会解压缩 myfile.txt.gz 并显示解压缩过程中的信息。

需要注意的是,gzip 只能压缩文件,而不能压缩目录。如果需要压缩目录,可以使用 tar 命令与 gzip 结合来实现,即 tar 命令用来打包目录,然后 gzip 用来压缩打包后的文件。

  • 使用 gzip -d 1.txt 进行解压缩文件
  • gzip -vf 1.txt 进行压缩文件并进行展示过程覆盖原文件
  • gzip -l 1.txt.gz 查看压缩文件中的文件列表
  • gzip -S .zip 1.txt 将文件压缩成zip格式的压缩文件

那个 zcat/zmore/zless 则可以对应于cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!由于 gzip 这个压缩指令主要想要用来取代compress 的,所以不但 compress 的压缩文件可以使用gzip 来解开,同时 zcat 这个指令可以同时读取compress 与 gzip 的压缩文件呦!

此外,使用 gzip 压缩的文件在 Windows 系统中,竟然可以被 WinRAR/7zip 这个软件解压缩呢


bzip2 将文件进行压缩

在Linux系统中,bzip2 是一个用于数据压缩的工具,它使用了Burrows-Wheeler算法。这个命令通常用来压缩单个文件,或者压缩 tar 归档文件(在这种情况下,通常使用 tar -czv 命令)。压缩后的文件通常具有 .bz2 扩展名。

命令作用:

  • bzip2: 压缩工具,用来压缩文件。
  • bunzip2: bzip2 的解压缩工具,用来解压缩 .bz2 文件。

参数使用:

以下是一些常用的 bzip2 参数:

  • -z 或 --compress:压缩文件。
  • -d 或 --decompress:解压缩文件。
  • -c 或 --stdout:将压缩或解压缩的数据输出到标准输出(通常是终端或命令行界面)。
  • -k 或 --keep:在解压缩时不删除源文件。
  • -f 或 --force:强制压缩或解压缩文件,即使文件不存在或不具有读取权限。
  • -t 或 --test:测试压缩文件的完整性。

使用示例:

  1. 压缩文件

要压缩文件 example.txt,可以使用以下命令:

bzip2 example.txt

这将创建一个名为 example.txt.bz2 的压缩文件,原始文件 example.txt 将会被压缩。

  1. 解压缩文件

要解压缩文件 example.txt.bz2,可以使用以下命令:

bunzip2 example.txt.bz2

这将恢复原始文件 example.txt,而 example.txt.bz2 将被删除(除非使用了 -k 选项)。

请注意,这里提供的是 bzip2 命令的基本使用情况。在实际使用中,可能还需要根据具体情况进行参数的组合和调整。

看上面的范例,你会发现到 bzip2 连选项与参数都跟 gzip 一模一样!只是扩展名由 .gz 变成 .bz2 而已!!你也可以发现到 bzip2 的压缩率确实比 gzip 要好些!不过,对于大容量文件来说,bzip2 压缩时间会花比较久喔!至少比 gzip 要久的多!这没办法~要有更多可用容量,就得要花费相对应的时间!还 OK 啊!


xz 将文件进行压缩

在Linux系统中,xz 是一种数据压缩工具,它使用LZMA算法来压缩文件。xz 命令可以用来压缩文件(xz),解压缩文件(unxz 或 xz -d),或者查看压缩文件的压缩率(xz -l)。

下面是 xz 命令的一些常用参数及其作用:

  • -z 或 --compress:压缩文件。
  • -d 或 --decompress:解压缩文件。
  • -c 或 --stdout:将输出重定向到标准输出,通常与解压缩时使用。
  • -k 或 --keep:压缩或解压缩后保留原始文件。
  • -f 或 --force:强制覆盖已存在的目标文件。
  • -t 或 --test:测试文件是否可以被压缩,但不进行压缩。
  • -0 到 -9:设置压缩的强度,数字越大,压缩率越高,但CPU消耗也越大。

例子

  1. 压缩文件

假设您想压缩一个名为 example.txt 的文件,您可以使用以下命令:

xz example.txt

这将创建一个名为 example.txt.xz 的压缩文件,原始的 example.txt 文件会保持不变。

  1. 解压缩文件

如果您有一个名为 example.txt.xz 的压缩文件,并想要解压缩它,可以使用以下命令:

xz -d example.txt.xz

或者:

unxz example.txt.xz

这将恢复原始文件 example.txt。

虽然 xz 这个压缩比真的好太多太多了!他可以将 gzip 压缩比(压缩后/压缩前)的 21% 更进一步优化到 15% 耶!差非常非常多!不过, xz 最大的问题是...时间花太久了!如果你曾经使用过 xz 的话,应该会有发现,他的运算时间真的比 gzip 久很多喔!

gzip,dzip2,xz的差异

time [gzip|bzip2|xz] -c services > services.[gz|bz2|xz] ”去执行运算结果,结果发现这三个指令的执行时间依序是: 0.019s, 0.042s, 0.261s,看最后一个数字!差了 10 倍的时间耶!所以,如果你并不觉得时间是你的成本考虑,那么使用 xz 会比较好!如果时间是你的重要成本,那么 gzip 恐怕是比较适合的压缩软件喔!

gzip压缩时间要比 dzip2快 dzip2 要比 xz快

xz压缩效果要比 dzip2 效果好 dzip2 要比gzip好

tar 打包指令

tar 命令在Linux系统中用于打包和压缩文件。它通常用于备份文件和目录,以及将文件组合成一个单一的文件,以便于存储或传输。tar 本身不提供压缩功能,但可以与 gzip 或 bzip2 等工具结合使用来压缩文件。

tar 命令的基本语法是:

tar [选项] 文件1 文件2 文件3 ...

这里是一些常见的 tar 命令选项及其说明:

  • -c:创建一个新的归档文件。
  • -x:解压缩归档文件。
  • -z:使用 gzip 进行压缩(与 -c 一起使用时)。
  • -j:使用 bzip2 进行压缩(与 -c 一起使用时)。
  • -v:在处理文件时显示详细信息。
  • -f:指定归档文件的名称。
  • -t:列出归档文件中包含的文件。
  • -r:向已存在的归档文件中追加文件。
  • -u:更新已存在于归档文件中的文件。
  • -p:保持文件权限不变。

例子:

  1. 创建一个包含多个文件的压缩归档文件:
tar -cvzf archive.tar.gz file1 file2 file3

这个命令会创建一个名为 archive.tar.gz 的压缩归档文件,其中包含 file1、file2 和 file3。

  1. 解压缩一个归档文件:
tar -xvzf archive.tar.gz -C /path/to/directory

这个命令会解压缩 archive.tar.gz 文件,并将解压缩后的文件放在 /path/to/directory 目录中。

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

  • 查 询:tar -jtv -f filename.tar.bz2

  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

  • 解压zip压缩格式的压缩文件

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

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

相关文章

Linux gcc 6

本章开始学习工具 什么是工具? 本质也是指令 yum 命令 小火车 sudo yum install sl(安装sl) sudo yum install -y sl //直接yes就不提示了 yum list //将yum源上的软件都穷举出来 yum search sl //结果不友好,不推荐 yum lis…

Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

【数据结构】泛型(分享重点)

什么是泛型&#xff1f; 泛型就是适用于许多许多类型&#xff0c;对类型参数化。 怎么创建一个泛型呢 class 泛型类名称<类型形参列表> { // 这里可以使用类型参数 } class ClassName<T1, T2, ..., Tn> { } class 泛型类名称<类型形参列表> extends 继承类…

Hadoop 3.1.3

第1章 Hadoop概述 1.1 Hadoop是什么 1.2 Hadoop发展历史&#xff08;了解&#xff09; 1.3 Hadoop三大发行版本&#xff08;了解&#xff09; Hadoop三大发行版本&#xff1a;Apache、Cloudera、Hortonworks。 Apache版本最原始&#xff08;最基础&#xff09;的版本&#x…

AI大模型探索之路-提升篇2:一文掌握AI大模型的核心-注意力机制

目录 前言 一、注意力机制简介 二、注意力机制的工作原理 三、注意力机制的变体 1、自注意力&#xff08;Self-Attention&#xff09; 2、双向注意力&#xff08;Bidirectional Attention&#xff09; 3、多头注意力&#xff08;Multi-Head Attention&#xff09; ​4、…

卫星影像联合无人机实现农业保险全生命周期监管监测

随着科技的进步&#xff0c;农业保险监管系统的发展日新月异。特别是近年来&#xff0c;随着卫星技术与无人机技术的结合&#xff0c;为农业保险监管系统带来了前所未有的革新。本文将深入探讨如何利用卫星与无人机方案构建高效的农业保险监管系统&#xff0c;并结合实例进行说…

网络篇06 | 应用层 自定义协议

网络篇06 | 应用层 自定义协议 01 固定协议设计&#xff08;简化版&#xff09;1&#xff09;总体设计2&#xff09;值设计 02 可变协议设计&#xff08;进阶版&#xff09;1&#xff09;固定头&#xff08;Fixed Header&#xff09;2&#xff09;可变头&#xff08;Variable H…

51单片机-ADC模数转换实验-电压值

一 主要知识点及分析: 1.这里是用到的XPT2046芯片,芯片详细说明自行查阅; 2.这里有两种模式,一般外设的转换用的是单端模式,在使用触摸屏的时候我们选择差分模式; 3.这张图有就是时序图,读写都需要在这上面进行编写代码, 3.1 写8位代码:主要是将传入的控制命令进行写入; 3.2 读…

C# Solidworks二次开发:相机访问相关API详解

大家好&#xff0c;今天要介绍的API为相机相关的API&#xff0c;这篇文章比较适合女孩子&#xff0c;学会了相机就会拍照了&#xff0c;哈哈。 下面是要介绍的API: &#xff08;1&#xff09;第一个为GetFocalDistance&#xff0c;这个API的含义为获取相机的焦距&#xff0c;…

光速论文靠谱不 #学习方法#笔记

光速论文是一款优秀的论文写作工具&#xff0c;许多学生和学者都对它赞不绝口。那么&#xff0c;光速论文靠谱吗&#xff1f;答案当然是肯定的&#xff01; 首先&#xff0c;光速论文具有强大的查重和降重功能。它能够帮助用户快速检测论文中的抄袭内容&#xff0c;并提供专业的…

小程序变更主体影响使用吗?

小程序迁移变更主体有什么作用&#xff1f;有些小程序开发者&#xff0c;因为业务调整&#xff0c;或者公司更换&#xff0c;需要更换小程序主体&#xff01;但是很多开发者对于小程序更换主体的操作流程并不熟悉&#xff0c;于是我们专门准备了这篇&#xff0c;关于小程序更换…

2024年航海制造工程与海洋工程国际会议(ICNMEME2024)

2024年航海制造工程与海洋工程国际会议(ICNMEME2024) 会议简介 2024年航海制造工程与海洋工程国际会议(ICNMEME2024)旨在将研究人员、工程师、科学家和行业专业人士聚集在一个开放论坛上&#xff0c;展示他们在导航制造工程与海洋工程领域的激励研究和知识转移理念。然而&…

嵌入式MCU BootLoader开发配置详细笔记教程

目录 一、BootLoader基础 二、BootLoader原理及配置 三、BootLoader程序 bootloader.h bootloader.c 四、Application1 用户程序 application1.h application1.c 五、Application2 用户程序 application2.h 六、程序运行效果 七、工程文件Demo 一、BootLoader基础 …

C++ | Leetcode C++题解之第29题两数相除

题目&#xff1a; 题解&#xff1a; class Solution { public:int divide(int dividend, int divisor) {// 考虑被除数为最小值的情况if (dividend INT_MIN) {if (divisor 1) {return INT_MIN;}if (divisor -1) {return INT_MAX;}}// 考虑除数为最小值的情况if (divisor I…

C++ 之 【类与对象】从入门到精通一条龙服务 最终篇(static成员、友元、匿名对象。。。)

&#x1f4b4;到用时方恨早&#xff0c;白首方悔挣的少 车到山前没有路&#xff0c;悬崖勒马勒不住 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、Static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、…

项目5-博客系统5+程序部署(Linux基本使用)

1.Linux的基本使用 1.1 Linux 是什么 Linux 是⼀个操作系统. 和 Windows 是 "并列" 的关系. 1.2 Unix & Linux 发展历程图 1.1969−1970 年, ⻉尔实验室的 Dennis Ritchie (左) 和 Ken Tompson (右) 开发了 Unix 操作系统. 2. Unix ⽕了之后, 衍⽣出很多的分⽀…

jvm参数介绍

JVM参数是指在Java应用程序启动时&#xff0c;通过命令行或者配置文件等方式传递给JVM的一些参数和选项。这些参数主要用于配置JVM的内存、垃圾回收、线程等相关参数。下面是一些常见的JVM参数简介&#xff1a; 1. -Xmx&#xff1a;设置应用程序可使用的最大内存量&#xff0c;…

C++ | Leetcode C++题解之第30题串联所有单词的子串

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> findSubstring(string &s, vector<string> &words) {vector<int> res;int m words.size(), n words[0].size(), ls s.size();for (int i 0; i < n && i m …

文献阅读:Viv:在 web 上多尺度可视化高分辨率多重生物成像数据

文献介绍 「文献题目」 Viv: multiscale visualization of high-resolution multiplexed bioimaging data on the web 「研究团队」 Nils Gehlenborg&#xff08;美国哈佛医学院&#xff09; 「发表时间」 2022-05-11 「发表期刊」 Nature Methods 「影响因子」 47.9 「DOI…

GitHub repository - Code - Issues - Pull Requests - Wiki

GitHub repository - Code - Issues - Pull Requests - Wiki 1. Code2. Issues3. Pull Requests4. WikiReferences 1. Code 显示该仓库中的文件列表。仓库名下方是该仓库的简单说明和 URL. 2. Issues 用于 BUG 报告、功能添加、方向性讨论等&#xff0c;将这些以 Issue 形式进…