首页 > 系统相关 >Linux基础06-指令篇之打包压缩解压缩【入门级】

Linux基础06-指令篇之打包压缩解压缩【入门级】

时间:2025-01-22 19:30:44浏览次数:3  
标签:解压 06 zip tar -- 压缩 解压缩 Linux gzip

Linux基础

内容提要

  • 压缩、打包、解压缩

权限说明

权限的类型权限的数值普通文件目录/文件夹
r:可读4cat,less,more,head,tail等ls
w:可写2>(覆盖写入),>>(追加写入),touch,rmmkdir,rmdir,mv(重命名)
x:可执行1./文件名(可执行文件)cd,cp,mv(移动)
-:无权限0无操作无操作

压缩与解压缩

压缩指令:gzip

说明:Linu压缩文件尾.gz(gzip)格式

执行权限:所有用户

语法:

gzip [选项] 文件/目录

选项:

  • -r:将目录下的文件递归压缩(递归压缩是技术实现,并不是每一层都产生一个压缩包)

  • -l:显示已经压缩文件的压缩信息

  • -d:解压缩

  • 范例:

    gzip demo01.c            --压缩demo01.c文件,
    gzip -d demo01.c.gz
    -------------------------------------------
    gzip -r chapter01                         
    gzip -dr chapter01/demo01.c.gz  --递归解压chapter/demo01.c.gz
    -------------------------------------------
    gzip *.out *.c           -- 批量压缩多个文件
    

在这里插入图片描述

另一种解压:

  • 语法

    gunzip [选项] 文件/目录
    
  • 选项:

    • -r:可以将目录下的文件递归解压缩
  • 范例

    gunzip demo01.c.gz
    gunzip -r chapter/demo01.c.gz
    

更高的压缩效率指令:bzip2

说明:压缩文件为.bz2的格式

执行权限:所有用户

语法:

bzip1 [选项] 文件名

选项:

  • -k:保留源文件压缩,支持解压后保留压缩包
  • -d:解压缩
  • -f:覆盖解压/压缩(文件夹中有同名文件,用解压出来的文件覆盖同名文件)

范例:

bzip2 -k demo01.c    --压缩demo01.c,保留源文件,压缩后米高程默认:demo01.c.bz2
bzip2 -df demo01.c.bz2   --解压demo01.c.bz2,解压出demo02.c,当前为覆盖式解压
-----------------------------------------------------------------------------
bzip2 -k demo01.c demo02.c  --批量压缩(分开)
bzip2 -df demo01.c.bz2 demo02.c.bz2 --批量解压

在这里插入图片描述

另一种解压:

  • 语法:

    bunzip2 [选项] 文件名
    
  • 选项:

    • -f:如果压缩时保留源文件,覆盖解压
  • 范例:

    bunzip2 -f demo01.c.bz2      --解压demo01.c.bz2
    bunzip2 -f demo01.c.bz2 demo02.c.bz2  --批量解压
    

总结:

  • gzip和bzip2的区别
    • gzip可以压缩文件夹中所有文件,bzip2不可以
    • 与gzip相比,bzip有更高的压缩效率
  • gzip和bzip不能混合使用,主要通过压缩文件的扩展名区分

压缩文件或目录:zip

说明:文件的后缀名是.zip

执行权限:所有用户

压缩的语法:

zip [选项] 压缩后的文件名 文件/目录

解压的语法:

unzip [选项] 压缩包(文件)的文件名 

选项:

  • -r:递归压缩,用于对文件夹的操作

    注意:不带选项会保留源文件(默认保留源文件)

范例:

zip demo03.zip demo03.c  --压缩demo03.c,压缩后名字demo03.zip
unzip demo03.zip  --解压缩

zip chapter01.zip chapter01 --压缩chapter01文件夹(仅仅从外层压缩--说的是压缩算法)
unzip chapter01.zip            --解压缩

zip -r chapter02.zip chapter02  --递归压缩chapter02文件夹,压缩后名字是chapter02.zip(递归逐层压缩--说的是压缩算法)
unzip chapter02.zip

zip ./love/love.zip demo03.c  --压缩demo03.到./love目录下,压缩后的文件名为love.zip
zip all.zip ./love/love.zip chapter01.zip chapter02.zip  --将多个文件(夹)打包并压缩

注意:

当解压缩时,如果有同名文件或文件夹,会有提示让用户进行选择处理:

[y]es:输入y,表示覆盖文件,进行替换(单文件一个个交互处理)

[n]o:输入n,表示不覆盖文件(单文件一个个交互处理)

[A]ll:输入A,表示覆盖文件夹(多文件,统一处理)

[N]one:输入N,表示不覆盖文件夹(多文件,统一处理)

[r]name:输入r,重命名解压后的文件

打包[压缩]指令:tar

执行权限:所有用户

语法:

tar [选项] 产生的文件名称 被压缩的文件或目录(空格隔开)

选项:

  • -c:打包

  • -v:显示命令执行的过程

  • -f:用于指定打包文件的名称

  • -z:打包时压缩/解包时解压缩操作的文件扩展名为.gz(指定压缩算法是gzip的压缩算法)

  • -x:解包

  • -j:与-z只能二选一,类似,使用的是bzip2的压缩算法扩展名是.bz2

  • 范例:

    -- 打包
    tar -cvf all.tar chapter01 chapter02 demo03.c --打包chapter01,chapter02,demo03.c文件到
    all.tar,未经过压缩,保留源文件
    tar -xvf all.tar --解包all.tar中的chapter01,chapter02,demo03.c
    -- 打包 + 压缩
    tar -zcvf all.tar.gz chapter01 chapter02 demo03.c --打包并压缩chapter01,chapter02,demo03.c文件
    到all.tar.gz
    tar -zxvf all.tar.gz
    tar -jcvf all.tar.bz2 chapter01 chapter02 demo03.c --打包并压缩chapter01,chapter02,demo03.c文
    件到all.tar.biz2
    tar -jxvf all.tar.bz2
    

    总结:

    1.*.tar :用 tar -xvf 解包

    1. *.gz : 用 gzip -d 解压缩
    2. *.tar.gz :和 *.tgztar -zxvf 解压
    3. *.bz2 :用 bzip2 -d 解压
    4. *.tar.bz2 :用 tar -jxvf 解包
    5. *.zip :用 unzip 解压

    总结:

    实现打包压缩目前我们接触了三种用法:

    ① zip:打包并压缩

    ② tar + gzip:先打包,再压缩

    ③ tar + bzip2:先打包,再压缩 关于tar和gzip、bzip2实现混合使用的时候,一定是先打包,再压缩。

tar结合gzip、bzip2

自动调用gzip/bzip2程序完成相关操作

  • 打包时,tar自动在最后调用gzip/bzip2对包进行压缩。
  • 解包时,tar首先调用gzip/bzip2解压缩,然后再解开被gzip/bzip2处理过的.tar文件

标签:解压,06,zip,tar,--,压缩,解压缩,Linux,gzip
From: https://blog.csdn.net/2301_79063670/article/details/145281943

相关文章

  • 【Linux】Linux开发必备六大工具之代码、编译、多人协作开发工具
    个人主页~我们学习Linux是为了什么呢?当然是为了更好的开发,所以我们终于来到了开发之前的一个环节,学完该基础环节,我们就可以上手进行开发了,激动~Linux开发必备工具一、代码工具--vim1、vim基本概念2、vim操作(1)命令模式(2)插入模式(3)底行模式3、配置vim二、编译工具--......
  • Linux usb【4】- gadget configfs介绍
    本文介绍如何通过configfs的方式创建一些usb设备,我们以uac2设备为例介绍一下整个流程。首先看一下driver/usb/gadget/function下的所有文件都是使用DECLARE_USB_FUNCTION_INIT注册一个usb_function_driver。613 #defineDECLARE_USB_FUNCTION(_name,_inst_alloc,_func_......
  • Linux usb【3】- gadget驱动介绍
    本文基于新思的dwc3usb控制器,介绍usb的gadget驱动,kernel版本为5.15。probe刚开始和前面介绍的host驱动是一样的,只不过在dwc3_core_init_mode函数中会选择gadget初始化dwc3_gadget_init。1214 staticintdwc3_core_init_mode(structdwc3*dwc)1215 {1216  structd......
  • LibXL 4.5.1 for win/linux/Mac/iOS Patch
    DirectreadingandwritingExcelfilesLibXLisalibrarythatcanreadandwriteExcelfiles.Itdoesn'trequireMicrosoftExceland.NETframework,combinesaneasytouseandpowerfulfeatures.LibrarycanbeusedtoGenerateanewspreadsheetfro......
  • Linux升级rsync
    介绍:查看当前版本: rsync --version找到安装目录:whichrsync在管网处下载最新tar.gz包,解压后,进入目录,依次执行以下命令:第一步:######配置 sudo ./configure--prefix=/usr/local######升级新版本可能会报错:Configurefoundthefollowingissues:-Failedtofindxx......
  • linux文件IO:select
    select电平触发#include<sys/time.h>#include<sys/types.h>#include<unistd.h>intselect(intn,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,structtimeval*timeout);在指定的文件描述符准备好I/O之前或超过一定时间限制,select调用会被阻塞readfds文件描......
  • How to set up File Transfer Protocol(FTP) server in Linux
    Step1:InstallvsftpdTosetupanFTPserverinLinux,first,youhavetoensurevsftpdisinstalled:ForUbuntu/Debian:sudoaptupdatesudoaptinstallvsftpd-yForCentOS/RHEL:sudoyuminstallvsftpd-yStep2:BasicConfigurationofvsftpdConfigu......
  • 如何在 Linux 服务器上设置 FTP 文件传输协议
    第一步:安装vsftpd要在Linux上设置FTP服务器,首先需要确保已安装vsftpd。对于Ubuntu/Debian系统:sudoaptupdatesudoaptinstallvsftpd-y对于CentOS/RHEL系统:sudoyuminstallvsftpd-y第二步:配置vsftpd配置vsftpd以允许基本的FTP连接并设置用户限......
  • Windows和Linux系统安装东方通
    1.Windows系统安装东方通1.1安装jdk1.2下载安装文件及license文件官网:https://www.tongtech.com/sy.html下载windows系统文件1.3在D盘下面创建TongWeb文件夹,上传文件1.4解压文件,把license文件放到bin同级目录下1.5启动,进入bin目录下启动双击:startserver.bat停止......
  • 06、Redis相关概念:缓存击穿、雪崩、穿透、预热、降级、一致性等
    Redis相关概念:缓存击穿、雪崩、穿透、预热、降级、一致性等Redis缓存雪崩、缓存击穿、缓存预热热点key、缓存降级、短链接、分布式锁秒杀、预减库存、堆外缓存+Redis架构设计、Redis动态刷新、Redis和DB双写一致性、过期删除策略、集群数据倾斜等一、缓存雪崩缓存......