linux 中的压缩和解压操作

news2024/7/6 19:09:10

1、压缩/解压操作

在开发中,很多时候会遇到某些文件要进行压缩的操作,比如文件较大不方便传输的时候,可能会考虑对文件进行压缩,以减少文件传输的时间。

比如在网络中传输文件的时候,就会考虑先将文件进行压缩,然后传输压缩的文件,这样可以减少文件传输所需要的带宽和时间,在网络接收到文件之后再解压,就可以得到文件了。

文件的压缩有两种方式:有损压缩和无损压缩。有损压缩会对文件的数据有一定的破坏,一般对于重要的文件我们不会考虑这样的方式。无损压缩不会影响文件,所以对于压缩我们最先考虑的是使用无损压缩的方式。

2、单个文件压缩和解压用 gzip / bzip2

对单个文件的压缩和解压我们可以使用使用gzip 和 bzip2 进行操作。这两个命令只能用于对单个文件的压缩操作,对于目录和多级目录的压缩是不行的。

2.1、gzip 压缩和解压

gzip命令的使用如下:

gzip [选项] [完整的文件名]
常用的选项有:
-l(list):列出压缩文件的内容;
-k(keep):在压缩或解压时,保留输入文件;
-d(decompress):将压缩文件进行解压缩;

使用gzip压缩完之后的文件会生成后缀为.gz的压缩文件。如果直接使用 gzip 对某个文件进行压缩,不加任何其他选项的话,压缩完成之后是会删除掉被压缩的源文件的,加 -k 选项就会在压缩完成之后依然保留源文件。

gzip的使用示例如下:

1)	压缩文件 
gzip -k "需要压缩的文件名"    // 压缩成功后得到了一个.gz结尾的压缩文件

2)	查看压缩文件
gzip -l  "经过压缩的.gz的文件"

3)	解压文件 
gzip -kd pwd.1.gz   //该压缩文件必须是以.gz结尾的单个文件

2.2、bzip2 压缩和解压

bzip2 命令的使用如下:

bzip2 [选项] [完整的文件名]
常用的选项有:
-l(list):列出压缩文件的内容;
-k(keep):在压缩或解压时,保留输入文件;
-d(decompress):将压缩文件进行解压缩;

使用bzip2压缩完之后的文件会生成后缀为.gz的压缩文件。

bzip2 的使用示例如下:

1)	压缩文件 
bzip2 -k "需要压缩的文件名"    // 压缩成功后得到了一个.bz2结尾的压缩文件

2)	查看压缩文件
bzip2 -l  "经过压缩的.bz2的文件"

3)	解压文件 
bzip2 -kd pwd.1.gz   //该压缩文件必须是以.bz2结尾的单个文件

gzip 和 bzip2 都能对单个文件进行压缩,那这两个方式有什么不同呢?

不同之处在于:

        1)一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩;

        2)bzip2 比 gzip 的压缩率更高。

3、目录和多级目录的解压和压缩用 tar

对目录以及多级递归的目录的压缩和解压可以使用 tar 进行操作。常用的 tar 命令的选项有:

-c(create):表示创建用来生成文件包 。
-x:表示提取,从文件包中提取文件。
-t:可以查看压缩的文件。
-z:使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-j:使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。 
-v(verbose):详细报告tar处理的信息。
-f(file):表示文件,后面接着一个文件名。 -C <指定目录> 解压到指定目录。

使用 tar 的进行打包压缩的时候,是可以选择压缩方式的,这个压缩方式就是前面提到的 gzip 和 bzip2 。

可以简单的理解为:tar就是将目录进行打包压缩,至于选择什么样的压缩文件的方式就要自己指定,对文件的压缩可选 gzip 和 bzip2 。

3.1、tar打包,用 gzip 压缩/解压

1)把目录 file1 压缩、打包为file1.tar.gz文件:
tar czvf file1.tar.gz file1。
注意:“tar –czvf”与“tar czvf”是一样的

2)查看压缩文件:
$ tar tvf  file1.tar.gz

3)	解压文件,可以用 -C 指定解压到哪个目录:
$ tar xzvf file1.tar.gz                 //解压到当前所在的目录 
$ tar xzvf file1.tar.gz -C "解压路径:xxx"   //解压到xxx

3.2、tar打包,用 bzip2 压缩/解压

1)把目录 file1 压缩、打包为file1.tar.bz2文件:
tar cjvf file1.tar.bz2 file1。
注意:“tar –cjvf”与“tar cjvf”是一样的。

2)查看压缩文件:
$ tar tvf  file1.tar.bz2

3)	解压文件,可以用 -C 指定解压到哪个目录:
$ tar xjvf file1.tar.bz2                 //解压到当前所在的目录。 
$ tar xjvf file1.tar.bz2 -C "解压路径:xxx"   //解压到xxx。

 

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

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

相关文章

微服务 过滤器 集成Sentinel实现网关限流

微服务 过滤器 集成Sentinel实现网关限流Gateway - -> 过滤器Filter局部路由过滤器使用局部过滤器全局过滤器使用全局过滤器集成Sentinel实现网关限流网关限流API分组限流Gateway - -> 过滤器Filter 过滤器就是在请求的传递过程中,对请求和响应做一些手脚. 在Gateway中, …

0xScope x Footprint | 真实的 NFT 市场是什么样?

2023 年 1 月数据源&#xff1a;NFT 真实交易分析面板前言NFT 作为一个2017年才出现的概念&#xff0c;在2018年至2020年一直处于生态发展的酝酿期&#xff0c;在2021年初开始迎来真正的爆发&#xff0c;一系列如CryptoPunk&#xff0c;The Sandbox&#xff0c;BAYC等知名NFT开…

Vue组件间通信的方式

目录 常用的父子组件通讯方式&#xff1a;props,emit 2.$parent,$children 3.$ref 4.provide/inject 5.EventBus 事件总线 &#xff08;任意两个组件通讯&#xff09; 6.$attrs、$listener 7.Vuex 状态管理器 8.localStorage/sessionStorage 在开发中&#xff0c;组…

相见恨晚,这6个适合安卓用户的浏览器,你用过吗

每个人手机里面有一款浏览器&#xff0c;当我们遇到问题的时候&#xff0c;可以打开浏览器搜索自己想要的答案。如果选用的手机浏览器不好&#xff0c;那么手机上可能会被安装很多垃圾软件。下面&#xff0c;和大家聊聊几款好用、适合安卓用户的浏览器&#xff0c;个人觉得这些…

【逐步剖C】第四章-操作符

​ 一、算术操作符 即基本的、-、*、/ 和 %。但也有几个需要注意的地方&#xff1a; 除了 ‘%’ 取模操作符只能作用整数&#xff0c;其他可以作用于整数和浮点数 对于除法&#xff0c;只要有操作数为浮点数就执行浮点数除法。如果两个操作数都为整数&#xff0c;执行整数除…

python多进程、多线程(详细)

多任务概念同一时间执行多个任务多任务优势最大的好处是充分利用CPU资源&#xff0c;提高程序的执行效率GIL锁&#xff08;全局解释锁&#xff09;让一个进程中同一个时刻只有一个线程可以被CPU调用&#xff0c;可以解决线程安全问题&#xff0c;有线程锁也有进程锁Rlock&#…

「自控元件及线路」1.3 直流电动机的特性与控制方法

本节介绍电机的基本物理量和基本关系 本节介绍直流电机的静态特性以及动态特性 本节介绍直流电机的控制方法、启动方法、稳定运行条件 本节介绍直流电动机的四种工作状态 本节介绍控制系统中应用的直流电动机的类型 文章目录基础知识基本物理量&#xff1a;电磁转矩与电枢反电势…

将TensorFlow模型快速迁移到昇腾平台

当前业界很多训练脚本是基于TensorFlow的Python API进行开发的&#xff0c;默认运行在CPU/GPU/TPU上&#xff0c;为了使这些脚本能够利用昇腾AI处理器的强大算力执行训练&#xff0c;需要对TensorFlow的训练脚本进行迁移。首先&#xff0c;我们了解下模型迁移的全流程&#xff…

.net6Api返回统一结果+Vue3前端访问

目录 第一种 第二种 第三种 Vue3前端访问 在我们开发api的时候&#xff0c;需要让接口返回统一的接口&#xff0c;这样容易理解&#xff0c;也容易管理。所以封装返回的统一结果是非常必要的。 下面介绍3种方案。 第一种 建立一个控制器&#xff0c;让所有控制器都继承…

电脑休眠唤醒后会出现屏幕闪烁问题怎么彻底解决?

电脑休眠唤醒后会出现屏幕闪烁问题怎么彻底解决&#xff1f;有的用户在电脑待机休眠之后&#xff0c;重新去唤醒电脑使用&#xff0c;这个时候电脑屏幕就会出现验证的屏幕闪烁&#xff0c;导致无法进行正常的使用。这个情况是电脑系统不兼容导致的。如果想要彻底解决问题&#…

NoClassDefFoundError错误解决

NoClassDefFoundError 类型报错 NoClassDefFoundError与ClassNotFoundException略有区别&#xff0c;从两者的异常类型可以发现&#xff0c;前者属于Error&#xff0c;后者属于Exception&#xff0c;发生了Error往往会导致程序直接崩溃或者无法启动运行。 NoClassDefFoundErro…

ecchart关系图展示(知识图谱)

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>ECharts 关系图</title><script type"text/javascript" src"http://code.jquery.com/jquery-3.5.1.min.js"></script><script s…

蓝桥杯-迷宫

没有白走的路&#xff0c;每一步都算数&#x1f388;&#x1f388;&#x1f388; 题目描述&#xff1a; 已知一个30行50列的方格&#xff0c;方格由0和1组成&#xff0c;1 表示障碍物&#xff0c;0表示可行的方块。人从最上边开始行走&#xff0c;逃出这个迷宫&#xff0c;走到…

Git 之reflog回滚操作失误

前言 以前只知道有git log命令&#xff0c;并不知道有git reflog。今天一个偶然的机会&#xff0c;我不小心把自己前两天写的代码给整丢了&#xff0c;如果时几个小时的代码&#xff0c;我重新写一遍就算了&#xff0c;但是这次不一样&#xff0c;这次是非常重大的修改&#x…

openfeign集成sentinel实现服务降级

openfeign集成sentinel实现服务降级使用openfeign调用服务&#xff08;不含sentinel&#xff09;代码测试openfeign集成sentinel实现服务降级引入sentinel相关环境编写FeignClient注解接口的实现类在服务提供者中&#xff0c;认为添加异常代码&#xff0c;以供测试 / 或者不启动…

SpringBean的生命周期

下文要讲的均是spring的默认作用域singleton的bean的生命周期&#xff0c;对spring作用域不了解的可以 https://blog.csdn.net/hlzdbk/article/details/128811271?spm1001.2014.3001.5502 什么是SpringBean的生命周期 springBean的生命周期&#xff0c;指的是spring里一个be…

Python爬虫以及数据可视化分析之某站热搜排行榜信息爬取分析

目录前言一&#xff0c;确定目标二&#xff0c;发送请求三, 解析数据四, 保存数据pyecharts进行可视化“某站”数据排名前10视频类型“某站”标题标签可视化“某站”喜欢视频分类概况总结前言 本项目将会对“某站”热搜排行的数据进行网页信息爬取以及数据可视化分析 本教程仅…

数据结构:栈的学习

作者&#xff1a;爱塔居 专栏&#xff1a;数据结构 作者简介&#xff1a;大三学生&#xff0c;希望跟大家一起进步 目录 一、栈 1.1 概念 1.2 栈的使用 1.3 示例 二、栈的应用场景 2.1 改变元素的序列 2.2 逆波兰表达式求值 2.3 括号匹配 2.4 栈的压入、弹出序列 一、栈…

upstream sent duplicate header line: “Transfer-Encoding: chunked“

实际情景&#xff1a; 公司项目有一个下载文件的功能&#xff0c;没有经过Nginx代理之前&#xff0c;好好的&#xff0c;正常下载&#xff1b; 加入了Nginx代理之后&#xff0c;过Nginx访问就会有 err_empty_response 这个错误&#xff1b; 搞了半天&#xff0c;nginx.conf加入…

第一章 linux概述

第一章 Linux概述 1、为什么要使用Linux Linux内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支…