Linux压缩打包命令——tar、zip、unzip

article/2025/11/9 1:29:18

 

打包跟压缩的区别:

打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;

tar命令

tar命令参数前面加”-"与不加“-”的区别:

tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;

常用参数:

tar命令的常用参数
-z是否同时具有gz属性
-j是否同时具有bz2属性
-J是否同时具有xz属性
-x解压缩、提取打包的内容
-t查看压缩包内容
-c建立一个压缩,打包文档
-C切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v显示压缩或者打包的内容
-f使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P保留绝对路径

 

一、打包

实例:

a.将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包为一个文件,名称为“jihe.tar”:

b.查看jihe.tar文件的内容:

c.提取jihe.tar文件的内容到/opt目录下:

如果不用“-C”指定目录则会提取内容到当前目录

二、压缩

linux主要有三种压缩方式:
1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
2.bzip:压缩形成的文件小,但是可用性不如gzip
3.xz:是最新的压缩方式,可以自动提供最佳的压缩率

建议的压缩的时候标明后缀:

参数作用命名方式
-z用于gzip压缩方式文件名.tar.gz
-j用于bzip2压缩方式文件名.tar.bz2
-J用于xz压缩方式文件名.tar.xz

 

实例:用不同的压缩方式压缩/root/目录下的Golden.apk文件

先查看Golden.apk文件的大小:

可以看到Golden.apk文件的大小为187M

a.用gzip压缩方式将Golden.apk文件压缩为Golden.apk.tar.gz文件:

b.用bzip2的压缩方式将Golden.apk文件压缩为Golden.apk.tar.bz2文件:

从上图可以看出红色方框内有报错,这个报错的原因是缺少bzip2的包,需要安装一个bzip2软件包

安装完成之后再重新压缩:

在压缩的过程中,我们可以发现:

压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz

三、解压

先删除/root/目录下的Golden.apk文件:

tar命令式一个很聪明的命令,我们在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩方式对应的方式去解压,这话说得有点拗口,例:

a.将Golden.apk.tar.gz解压到当前目录:

在解压gz压缩方式压缩文件的时候并不需要加上-z,直接用参数-xf即可,另外两种压缩方式在解压的时候一样,因为tar命令会自动选择,解压之后压缩文件还在,如果不指定解压出来的文件保存在哪里,那么会直接解压在当前目录

b.指定解压出来的文件保存的目录,将Golden.apk.tar.bz2文件解压在/opt/目录下:

补充:

a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:

将/root/目录以gzip的方式压缩为root.tar.gz压缩文件:

1.没有加-P选项:

2.加上-P选项:

解压的时候同理,如果在压缩文件的时候使用了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”“,如下图:

1.不加-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

2.加上-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:


b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的

将/root/目录下的harry目录打包,但是不打包harry目录下的ha.txt文件,如下图:

压缩文件也是同理,想要排除指定的目录压缩或者打包也是同理

zip命令和unzip命令

#在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装
查看有没有安装zip跟unzip命令的命令:

rpm -q zip unzip

如果有安装了命令则会显示出命令的版本号

zip命令

基本用法:

zip [参数] [压缩包名] [压缩的目录或者文件的路径]

常用参数:

zip命令的常用参数
-m将文件压缩后,删除原文件
-o将压缩文件内的所有文件的最新变动时间设为压缩的时间
-q安静模式,在压缩的时候不显示指令执行的过程
-r递归压缩,将自定目录下的所有子文件以及文件一起处理
-x”文件列表“,压缩时排除文件列表中的文件

 

实例:

a.压缩目录,将/root/目录下的harry目录压缩为名为harry.zip压缩包:

1.正常压缩,不加-q选项,显示压缩的过程:

2.加上-q选项,安静模式输出,不显示压缩的过程:

b.压缩多个文件,将/root/目录下的ceshi.txt文件和anaconda-ks.cfg文件和Golden.apk文件压缩为名为jihe.zip的压缩包:

因为压缩的全是文件,所以可以不用加上-r选项

c.压缩文件跟目录,将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和harry目录压缩成名为dajihe.zip的压缩包:

d.将/root/目录下的harry目录压缩为harry1.zip压缩包,排除harry目录下的ha.txt文件:

unzip命令

基本用法:

unzip [参数] [压缩文件]  (-d [目录])  //如果不是用括号里面的内容,则解压文件在当前工作目录

常用参数:

unzip命令的常用参数
-c将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-l显示压缩文件内所包含的文件
-t检查压缩文件是否正确
-v执行时显示压缩文件的详细信息
-q安静模式,执行时不显示任何信息
-d指定文件解压后存储的目录
-x指定不要处理压缩文件中的那些文件

实例:

a.将harry.zip压缩包解压缩的结果显示出来:

具体会显示到每一个文件跟每一个文件的内容

b.显示jihe.zip压缩包里面锁包含的文件

c.检查dajihe.zip压缩文件是否正确:

全部OK表示全部文件都是正确的

d.不解压压缩文件dajihe.zip,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):

#使用-v显示的信息比使用-l显示的信息更加详细

e.将dajihe.zip压缩包解压到/opt/目录下:

补充:使用r选项增加.tar归档文件的内容应该如何怎么操作?

我们先来了解一下tar命令-r选项的作用:

通过tar --help命令查看帮助

-r选项的作用:把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中

使用实例:

看上图,可以看到我ops用户家目录下标记了一个文件,一个目录,我现在先将目录归档,然后再将文件追加到档案里面

1.归档操作

生成.tar文件,目录归档完毕!

2.将calculating_time.sh追加进入.tar文件中

3.验证

a.查看.tar文件的归档信息

可以看到calculating_time.sh文件已经被追加到档案的末尾了

b.提取Check_Configuration_20201118_PM.tar 到/mnt目录下

使用-r选项追加文件至.tar文件成功


http://chatgpt.dhexx.cn/article/XZAigOFP.shtml

相关文章

linux tar压缩文件命令,tar打包压缩文件命令

tar命令 tar命令用于将多个文件合成1个文件,wiki中把这个命令和cpio、shar等一起叫做archive文件,个人理解是归档,合成一个文件,后就可以用gzip、bz2、xz等工具进行压缩,同时也能方便在各个计算机间传输,有点类似windows下共享的zip文件。 wiki上这个图比较形象,tar把零…

解压缩 tar命令详解

1、 tar命令进行文档的归档和压缩 归档和压缩文件 归档和压缩文件的好处:节约硬盘的资源,加快文件传输速率 tar命令 作用:打包、压缩文件;tar文件是把几个文件和(或)目录集合在一个文件里,该存…

使用sobel、prewitt、拉普拉斯算子、差分法提取图像的边缘

参考: https://www.cnblogs.com/dengdan890730/p/6145585.html https://blog.csdn.net/touch_dream/article/details/62447801 https://blog.csdn.net/xiahn1a/article/details/42141429 https://blog.csdn.net/swj110119/article/details/51777422 什么是边缘…

图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson(Matlab实现)

图像边缘一般指图像的灰度变化率最大的位置。成因主要如下: 1.图像灰度在表面法向变化不连续; 2.图像中物体在空间上的深度不一致; 3.在光滑的表面上颜色不一致; 4.图像中物体的光影 边缘检测指的是从图像中检测边缘点和边缘段…

python图像处理(十一)——图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子、Laplacian算子

在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高…

机器学习MATLAB实现:Matlab-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化

机器学习MATLAB实现:Matlab-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化 欢迎大家来到安静到无声的《模式识别与人工智能(程序与算法)》,如果对所写内容感兴趣请看模式识别与人工智能(程序与…

10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子

10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子 文章目录 10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子1 算法原理1.1 Sobel 算子1.2 Ro…

【计算机视觉】卷积、均值滤波、高斯滤波、Sobel算子、Prewitt算子(Python实现)

##1.环境的搭建 Python 3.6OpenCV Open Source Computer Vision Library.OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、MacOS操作…

几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

from:https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括:深度上的…

prewitt算子实现

原理&#xff1a; 实现&#xff1a; /*** description: prewitt算子* param src 输入图像* param dst 输出图像*/ void prewitt(cv::Mat& src, cv::Mat& dst) {cv::Mat getPrewitt_horizontal (cv::Mat_<float>(3, 3) << -1, -1, -1, 0, 0, 0, 1, 1, …

数字图像处理——Sobel算子锐化、Prewitt算子锐化

数字图像处理——Sobel算子锐化、Prewitt算子锐化 一、Sobel算子锐化 %函数名称为Image_Sobel,输入参数Image,输出参数IMAGE function [IMAGE] Image_Sobel(Image) %获取矩阵的行、列、波段数 [m,n,bands] size(Image); %定义模板大小&#xff0c;假设模板大小33 A 1; %定义…

Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术

前文传送门&#xff1a; 「Python 图像处理 OpenCV &#xff08;1&#xff09;&#xff1a;入门」 「Python 图像处理 OpenCV &#xff08;2&#xff09;&#xff1a;像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python 图像处理 OpenCV &#xff08;3&#xff09;&…

[Python从零到壹] 五十七.图像增强及运算篇之图像锐化Roberts、Prewitt算子实现边缘检测

欢迎大家来到“Python从零到壹”&#xff0c;在这里我将分享约200篇Python系列文章&#xff0c;带大家一起去学习和玩耍&#xff0c;看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解&#xff0c;真心想把自己近十年的编程经验分享给大家&#xff0c;希望…

Prewitt算子计算图像梯度

Prewitt算子是一阶微分算子的边缘检测&#xff0c;利用像素点上下、左右邻点的灰度差&#xff0c;在边缘处达到极值检测边缘&#xff0c;去掉部分伪边缘&#xff0c;对噪声具有平滑作用。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成&#xff0c;这两个方向模板…

opencv-6 边缘检测(Prewitt算子,Sobel算子,Laplacian算子)

Roberts filter2D形式实现 import cv2 import numpy as np import matplotlib.pyplot as pltimg cv2.imread(lena.jpg) lenna_img cv2.cvtColor(img,cv2.COLOR_BGR2RGB) grayImage cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)kernelx np.array([[-1,0],[0,1]],dtypeint) kernely…

梯度与Roberts、Prewitt、Sobel、Lapacian算子

一、学习心得&#xff1a; 学习图像处理的过程中&#xff0c;刚开始遇到图像梯度和一些算子的概念&#xff0c;这两者到底是什么关系&#xff0c;又有什么不同&#xff0c;一直困扰着我。后来在看到图像分割这一模块后才恍然大悟&#xff0c;其实图像的梯度可以用一阶导数和二…

【计算机视觉】图像分割与特征提取——基于Roberts、Prewitt、Sobel算子的图像分割实验

个人简介&#xff1a; > &#x1f4e6;个人主页&#xff1a;赵四司机 > &#x1f3c6;学习方向&#xff1a;JAVA后端开发 > ⏰往期文章&#xff1a;SpringBoot项目整合微信支付 > &#x1f514;博主推荐网站&#xff1a;牛客网 刷题|面试|找工作神器 > &#…

边缘检测——Prewitt算子

垂直水平方向边缘 垂直水平方向的Prewitt算子是可分离的卷积核。 45、135方向边缘 算子不可分割。 缺点 没有充分利用边缘的梯度方向最后输出的边缘二值图&#xff0c;只是简单地利用阈值进行处理。如果阈值过大&#xff0c;则会损失很多边缘信息&#xff1b;如果阈值过…

数字图像处理(19): 边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子)

目录 1 边缘检测的基本原理 2 边缘检测算子分类 3 梯度 3.1 图像梯度 3.2 梯度算子 4 Roberts 算子 4.1 基本原理 4.2 代码示例 5 Prewitt 算子 5.1 基本原理 5.2 代码示例 6 Sobel 算子 6.1 基本原理 6.2 代码示例 7 Laplacian 算子 7.1 基本原理 7.2 代码示…

python数字图像处理——边缘检测算子(Laplacian算子、Roberts算子、Prewitt算子和Sobel算子)

1.Laplacian算子 拉普拉斯&#xff08;Laplacian&#xff09;算子是n维欧几里德空间中的一个二阶微分算子&#xff0c;常用于图像增强领域和边缘提取。它通过灰度差分计算邻域内的像素&#xff0c;基本流程是&#xff1a;判断图像中心像素灰度值与它周围其他像素的灰度值&…