Linux实战笔记(三) 文件压缩
大家好,我是半虹,这篇文章来讲 Linux 系统中常用的文件压缩方式
0、序言
在 Linux 系统中,存在许多打包或压缩文件的工具
这篇文章会对一些常用的工具进行分类整理和介绍
如果只是需要知道怎么对不同格式的文件做解压缩,可以直接跳转到本文最后的总结部分
如果希望了解不同压缩工具的使用方法和应用场景,那么可以跟随正文一起进行深入探讨
好了,下面是正文部分
1、tar
tar 命令本质上是用于打包文件,并不会做压缩,其打包的文件通常带有 .tar 后缀
命令格式如下:
tar [OPTION...] [FILE]..
常用参数如下:
| 短参数 | 长参数 | 作用 |
|---|---|---|
-c | --create | 打包指定文件到新的包 |
-r | --append | 新增指定文件到已有包 |
-u | --update | 在已有包更新指定文件 |
--delete | 在已有包删除指定文件 | |
-t | --list | 列出包中文件 |
-x | --extract | 还原包中文件 |
-f | --file | 指定包的名称 |
-v | --verbose | 显示详细信息 |
tar 命令在打包之后,可以通过参数调用压缩工具进一步对其进行压缩,使用的参数如下:
| 短参数 | 长参数 | 压缩工具 | 压缩后的文件后缀 |
|---|---|---|---|
-z | --gzip | gzip | .tar.gz / .tgz |
-Z | --compress | compress | .tar.Z |
-j | --bzip2 | bzip2 | .tar.bz2 |
-J | --xz | xz | .tar.xz |
下面通过一些简单的例子,了解一下常用的参数组合
# 打包所有后缀为 txt 的文件到新的包 packed.tar
tar -cvf packed.tar *.txt# 新增所有后缀为 png 的文件到已有包 packed.tar
tar -rvf packed.tar *.png# 更新已有包 packed.tar 所有后缀为 txt 的文件
tar -vf packed.tar --update *.txt# 删除已有包 packed.tar 所有后缀为 png 的文件
tar -vf packed.tar --delete *.png# 列出已有包 packed.tar 所有文件
tar -tvf packed.tar# 还原已有包 packed.tar 所有文件
tar -xvf packed.tar# 打包并压缩【常用】
tar -zcvf packed.tar.gz *.txt# 解压并还原【常用】
tar -zxvf packed.tar.gz *.txt# 实际上对于这种先打包再压缩的文件
# 我们既可以使用上述命令解压并还原
# 同时也可以先用对应工具解压,然后再用 tar 还原或做其它操作# 解压后缀为 .gz 的文件
gzip -dk xxx.gz# 解压后缀为 .Z 的文件
gzip -dk xxx.Z# 解压后缀为 .bz2 的文件
bzip2 -dk xxx.bz2# 解压后缀为 .xz 的文件
xz -dk xxx.xz
上面提到的四种压缩方式,这里也做一个简单的介绍
| 压缩方式 | 文件后缀 | 压缩比率 | 压缩速度 | 解压速度 | 使用场景 |
|---|---|---|---|---|---|
| gzip | .gz | 适中 | 较快 | 较快 | 十分常用,绝大多数系统都有支持 |
| compress | .Z | 较低 | 较快 | 较快 | 极少使用,只会在老系统遇到 |
| bzip2 | .bz2 | 较高 | 较慢 | 较慢 | 比较常用,特别是在高压缩比场景 |
| xz | .xz | 很高 | 较慢 | 较慢 | 比较常用,特别是在高压缩比场景 |
如果对压缩比例、压缩速度、解压速度在大多数情况下进行排序,大致如下:
- 压缩比率:
xz>bzip2>gzip>compress - 压缩速度:
gzip>compress>bzip2>xz - 解压速度:
gzip>compress>bzip2>xz
对于各压缩算法的使用场景,推荐如下:
- 如果希望平衡压缩比和解压缩时间,那么推荐选择
gzip - 如果追求较高压缩比,不在乎时间,那么推荐选择
bzip2或者xz
下面来测试下各个压缩算法的实际表现
就地取服务器上的一个大型前后端项目,包括程序文件、图片资源、文本资源、模型资源等共 4G 大小
对其进行打包之后压缩,各项指标如下:
| 测试命令 | 压缩算法 | 压缩后的文件大小 | 压缩时间 | 解压时间 |
|---|---|---|---|---|
time tar -cf xxx.tar ./xxx | / | 3.6G | 0m6.003s | 0m24.740s |
time tar -zcf xxx.tar.gz ./xxx | gzip | 2.5G | 2m9.206s | 0m46.089s |
time tar -jcf xxx.tar.bz2 ./xxx | bzip2 | 2.2G | 11m4.117s | 4m45.567s |
time tar -Jcf xxx.tar.xz ./xxx | xz | 1.3G | 20m0.949s | 1m36.590s |
需要注意的是,不同的压缩算法对于不同的文件类型具有很大差异
上述测试旨在提供一个参考,并不能代表所有的情况
2、zip & rar
除了上述用于打包的 tar 以及同步介绍的 gzip、compress、bzip2、xz 等压缩方式
zip 和 rar 也是很常用的压缩格式,特别是在 Windows 系统上
对于这些 Windows 系统上常用的压缩算法,Linux 也有提供相应的支持
- 对于
zip格式,可以使用zip命令进行压缩,对应使用unzip命令进行解压 - 对于
rar格式,可以使用rar命令进行压缩,对应使用unrar命令进行解压
3、总结
| 文件后缀 | 压缩命令 | 解压命令 |
|---|---|---|
.tar | tar -cvf xxx.tar ... | tar -xvf xxx.tar |
.tar.gz / tgz | tar -zcvf xxx.tar.gz ... | tar -zxvf xxx.tar.gz |
.tar.bz2 | tar -jcvf xxx.tar.bz2 ... | tar -jxvf xxx.tar.bz2 |
.tar.xz | tar -Jcvf xxx.tar.xz ... | tar -Jxvf xxx.tar.xz |
.gz | gzip -k ... | gzip -dk xxx.gz |
.bz2 | bzip2 -k ... | bzip2 -dk xxx.bz2 |
.xz | xz -k ... | xz -dk xxx.xz |
.zip | zip xxx.zip ... | unzip xxx.zip |
.rar | rar a xxx.rar ... | unrar e xxx.rar |
好啦,本文到此结束,感谢您的阅读!
如果你觉得这篇文章有需要修改完善的地方,欢迎在评论区留下你宝贵的意见或者建议
如果你觉得这篇文章还不错的话,欢迎点赞、收藏、关注,你的支持是对我最大的鼓励 (/ω\)
相关文章:
Linux实战笔记(三) 文件压缩
大家好,我是半虹,这篇文章来讲 Linux 系统中常用的文件压缩方式 0、序言 在 Linux 系统中,存在许多打包或压缩文件的工具 这篇文章会对一些常用的工具进行分类整理和介绍 如果只是需要知道怎么对不同格式的文件做解压缩,可以直…...
树形递归模板
详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html public class Menu {// 菜单idprivate String id;// 菜单名称private String name;// 父菜单idprivate String parentId;// 菜单urlprivate String url;// 菜单图标private String icon;// 菜单顺序private …...
Python实战:Pandas数据合并与重塑
本文将深入探讨Pandas库在数据合并与重塑方面的强大功能。我们将涵盖多种数据合并方法,如merge、join、concat等,以及数据重塑的技巧,如pivot_table、merge_asof等。 一、引言 Pandas是一个强大的Python数据分析库,它提供了丰富…...
如何理解 Linux 命令行参数与环境变量7
一、命令行参数 1.1参数介绍 在写C语言程序时,main函数是否可以带参数呢?------ 是可以的 int argc: 命令行参数的个数char *argv[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这…...
奥特曼回应GPT5
欢迎再次与大家会面!在积累了大量的信息和趋势后,今天我们将深入了解 Sora、OpenAI 董事会、以及近期与其有关的所有声讨。我们将直接跳入与 OpenAI 首席执行官 Sam Altman 的深度访谈,探讨从 AGI 到 GPT-5 的未来,以及 Sam 对人工…...
QT----给程序添加上任务栏托盘图标和退出
让我们的程序拥有任务栏托盘图标,实现程序后台运行,退出等功能 1、关闭程序保持后台 重写关闭事件,忽略点击窗口关闭 void MainWindow::closeEvent(QCloseEvent *event) {// 隐藏窗口,而不是真正关闭setVisible(false);// 忽略关闭事件&am…...
arm地址对齐的总结
static void axi_azx_writeb(u8 value, u8 __iomem *addr) { u32 data; u32 offset; offset (u64)addr & 0x03; // 编译器不允许地址做& 操作时要强转为数据 addr (u8 __iomem *)((u64)addr & 0xFFFFFFFFFFFFFFFC); // __iomem是个64位的地址 u8表示从这个地址…...
就业班 2401--3.13 走进网络
走进网络 长风破浪会有时,直挂云帆济沧海。 1.认识计算机 1.计算机网络是由计算机和通讯构成的,网络研究的是“通信”。 ------1946 世界上第一台计算机 2.终端:只有输入和输出功能,没有计算和处理功能。 3.数据:一串…...
SWIFT介绍和学习(简单入门级别)
SWIFT介绍和学习 SWIFT功能介绍SWIFT快速使用LLM及LLM最佳实践(LLM系列文章)部署指南 vllm非官方介绍资料 项目地址:https://github.com/modelscope/swift 任何有疑惑的地方,参考项目首页readme寻求答案 SWIFT功能介绍 SWIFT&…...
智慧城市:提升城市治理能力的关键
目录 一、智慧城市的概念及特点 二、智慧城市在提升城市治理能力中的应用实践 1、智慧交通:提高交通治理效率 2、智慧政务:提升政府服务水平 3、智慧环保:加强环境监测与治理 4、智慧安防:提高城市安全水平 三、智慧城市在…...
golang 对接第三方接口 RSA 做签(加密) 验签(解密)
一、过程 1.调用第三方接口前,一般需要按规则将参数按key1value1&key2value2 阿斯克码排序,sign参数不参与加密 2.将排序并连接好的参数字符串通过我方的私钥证书(.pem)进行加密得到加密串,当然加密得到的是 []byte 字节流&…...
Spring Data访问Elasticsearch----Elasticsearch存储库Repositories
Spring Data访问Elasticsearch----Elasticsearch存储库Repositories 一、自动创建具有相应映射的索引二、存储库方法的注解2.1 Highlight2.2 SourceFilters 三、基于注解的配置四、Spring命名空间Namespace 本文包括Elasticsearch存储库实现的细节。 例1:示例Book实…...
初探 Cocos Creator: 碰撞与物理系统
前言 不知道你刚开始玩碰撞时,会不会遇到始终无法触发碰撞事件?玩物理系统时,自由落体的刚体会穿过 “地面” 刚体等情况?没错我全都遇到过,那么下面我就用红蓝色方块,简单实战一下 Cocos Creator 的碰撞与…...
Vue组件封装方案对比——v-if方式与内置component方式
近期在准备搭建一个通用组件库,而公司现有的各个系统也已有自己的组件库只是没抽离出来,但是目前有两套不同的组件封装方案,所以对于方案的选择比较困惑,于是对两种方式进行了对比,结合网上找到的一些开源组件库进行分…...
python与excel第四节 批量新增、删除工作表
在多个工作簿中批量新增工作表 假设,一个文件夹下面有多个excel文件,需要再每个excel文件中增加一个sheet。 例子: import osimport xlwings as xw file_path D:\\TEST\\python与excelfile_list os.listdir(file_path) sheet_name 产品…...
计算机网络——计算机网络体系结构
计算机网络——计算机网络体系结构 计算机网络体系结构的由来正确认识分层协议与层次划分著名的几个体系结构OSI体系结构TCP/IP体系结构5层体系结构 我们今天来了解一下计算机网络体系结构: 计算机网络体系结构的由来 俗话说,“没有规矩,不…...
近期常用linux命令总结
linux mv [options] source dest : 移动文件 cp [options] source : 复制文件 ps -a: 列出所有进程 ps -ef | grep 进程关键字: 查找指定进程 (-e 显示所有进程 -f 全格式) docker docker images 显示所有镜像 docker pull [IMAGE_NAME] : 拉取某个镜像…...
变配电站配电监控解决方案--变电站综合自动化系统
变电站综合自动化系统 Acrel-1000变电站综合自动化监控系统是我司根据电力系统自动化及无人值守的要求,总结国内外的研究和生产的先进经验专门研制出的新一代电力监控系统。本系统具有保护、遥测、遥信、遥脉、遥调、遥控功能,可实现无人或少人值守功能…...
【ollama】linux、window系统更改模型存放位置,全网首发2024!
首先是window系统 so easy 直接进入系统环境变量添加就行 其次是linux系统 全靠自己试出来的,去Ollama官网找半天文档不知道在哪,而且linux也没有说:【 https://github.com/ollama/ollama/blob/main/docs/README.md https://github.com/o…...
Spring 被打暴了! vs Javalin vs Solon
测试仅供参考。不同的环境、场景,效果会不同。 测试记录: 项目SpringBoot2SpringBoot3JavalinSolon运行时java 17java 17java 17java 17测试前状态/内存101.1Mb112.9Mb66.1Mb45.6Mb测试后状态/内存996.3Mb326.9Mb457.3Mb369.2Mb测试后状态/并发2万2.6万…...
Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service
Win10家庭版性能优化实战:精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿,或是视频渲染到关键时刻系统响应迟缓,很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...
DIY复刻经典:Texar Audio Prism动态处理器克隆套件全攻略
1. 项目概述:Texar Audio Prism 克隆套件如果你在专业音频圈子里混过一段时间,尤其是对上世纪八九十年代那些经典的、带点“魔法”色彩的外置动态处理器感兴趣,那么“Texar Audio Prism”这个名字你大概率不会陌生。它不是最常见的1176或者LA…...
WPF虚拟桌宠组件:可嵌入、高性能、工程化UI生命体
1. 这不是“桌面宠物”,而是一个可嵌入的WPF UI组件化生命体你可能在Windows XP时代见过那只晃着尾巴、偶尔打哈欠的3D小猫,也可能在Win10系统托盘里点开过一个会眨眼的像素狐狸——但那些是独立进程、是系统级小工具、是“看一眼就关掉”的轻量娱乐。而…...
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为经典即时战…...
【与我学 ClaudeCode】协作篇 之 Worktree + Task Isolation :目录隔离的并行执行通道
作者:逆境不可逃 技术永无止境 希望我的内容可以帮助到你!!!! 大家吼 ! 我是 逆境不可逃 今天给大家带来文章《【与我学 ClaudeCode】协作篇 之 Worktree Task Isolation :目录隔离的并行执行通道》. Le…...
InVideo插件深度解析:如何在Unreal Engine中实现高效视频流播放与录制
InVideo插件深度解析:如何在Unreal Engine中实现高效视频流播放与录制 【免费下载链接】InVideo 基于UE4实现的rtsp的视频播放插件 项目地址: https://gitcode.com/gh_mirrors/in/InVideo InVideo是一个基于Unreal Engine 5开发的RTSP视频播放插件࿰…...
基于IRS2092的200W D类功放设计:从PWM原理到保护电路实战
1. 项目概述与核心思路折腾音响功放,从经典的AB类玩到D类,感觉就像是从燃油车换到了电动车,动力响应和效率完全是两个维度。这次要聊的这块“200W Class-D Audio Power Amplifier [150115]”单板功放,就是一个非常典型的D类功放设…...
Unity3D深度纹理实战:手把手教你实现可交互的激光雷达扫描特效(附完整C#/Shader代码)
Unity3D深度纹理实战:手把手教你实现可交互的激光雷达扫描特效(附完整C#/Shader代码)在科幻题材的游戏开发中,激光雷达扫描特效是营造科技感的经典元素。从《赛博朋克2077》的战术目镜到《看门狗》的环境扫描,这种动态…...
从零构建FOC轮腿机器人:开源平衡机器人完整指南
从零构建FOC轮腿机器人:开源平衡机器人完整指南 【免费下载链接】foc-wheel-legged-robot Open source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and software development. | 一个…...
模拟电路实现自主循线机器人:无MCU的硬件逻辑设计
1. 项目概述:用最纯粹的模拟电路,造一台会“思考”的机器人每次看到那些在赛道上灵巧穿梭的循线小车,你是不是也手痒,想自己动手做一个?但一听到“单片机”、“编程”、“Arduino”这些词,又觉得门槛太高&a…...
