Linux基础:压缩与解压缩

目录

压缩与解压缩

指令

压缩指令:gzip

更高的压缩效果指令:bzip2

打包指令:tar

压缩文件或目录:zip

压缩格式总结

打包压缩方式总结


压缩与解压缩


指令


压缩指令:gzip


说明:Linux压缩文件为.gz格式,只能压缩文件,不能压缩目录;只能压缩目录,不能打包

执行者:所有用户

语法:

gzip [选项] 文件路径

选项:

        -r可以将目录下的文件递归压缩/解压缩(绕过文件目录找到文件进行压缩)

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

        -d解压缩

注意:

        gzip  -r命令会递归压缩指定的目录下的每个文件(每个文件单独压缩成.gz),不会将整个目录打包成一个压缩文件。

举例:

gzip demo01.c
# 解释:压缩当前路径下的demo01.c文件,压缩后的名称默认:demo01.c.gz,压缩后源文件(demo01.c)会被删除

gzip demo01.c.gz
# 解释:解压缩当前路径下的demo01.c.gz文件,解压后源文件(demo01.c.gz)会被删除

-------------------------------------------------------------------------------------------

gzip -r chapter01
# 解释:递归压缩chapter01目录中的文件,每个文件会单独压缩为'.gz',压缩后删除源文件
# 举例:原始文件:chapter01/demo01.c → 压缩后:chapter01/demo01.c.gz

gzip -rd chapter01
# 解释:解压缩chapter01/目录下的.gz文件,解压缩后,删除源文件

-------------------------------------------------------------------------------------------

gzip demo01.c demo02.c
# 解释:批量压缩demo01.c,demo02.c,压缩后删除源文件

gzip -d demo01.c.gz demo02.c.gz
# 解释:批量解压demo.c.gz,demo02.c.gz,解压后删除源文件

注意:

        如果已经是.gz文件,就不能再次压缩。

另一种解压【扩展】:


语法:

gunzip [选项] 文件/目录

选项:

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

范例:
 

gunzip demo01.c.gz
# 解释:解压demo01.c.gz

gunzip -r chapter01
# 解释:绕过指定目录递归解压demo01.c.gz,等价于gzip -rd chapter01

更高的压缩效果指令:bzip2


说明:压缩文件为.bz2格式,同样这种压缩不提供打包功能

执行者:所有用户

语法:

bzip2 [选项] 文件路径

选项:

        -k:保留源文件,支持源文件

        -d:解压缩

        -f:覆盖式压缩/解压缩(压缩或者解压路径下,出现同名文件,用压缩或者解压缩后的文件覆盖)

举例:
 

bzip2 demo01.c
# 解释:压缩当前路径下的demo01.c文件,压缩后默认的名称为demo01.c.bz2,源文件会被删除

bzip2 -d demo01.c.bz2
# 解释:解压缩当前路径下的demo01.c.bz2文件,解压缩后源文件会被删除

-------------------------------------------------------------------------------------------

bzip2 -k demo02.c
# 解释:解压缩当前路径下的demo02.c文件,压缩后默认的名称为demo02.c.bz2,源文件会保留

bzip2 -kdf demo02.c.bz2
# 解释:解压缩当前路径下的demo02.c.bz2文件,解压缩后,保留.bz2文件,覆盖掉之前的.c文件

-------------------------------------------------------------------------------------------

bzip2 -kf demo01.c demo02.c
# 解释:批量压缩demo01.c,demo02.c,保留.c文件,覆盖已经存在的同名的.bz2文件

bzip2 -df demo01.c.bz2 demo02.c.bz2
# 解释:批量解压缩demo01.c.bz2,demo02.c.bz2,删除.bz2文件,覆盖已经存在的.c文件

另一种解压【扩展】:


语法:

bunzip2 [选项] 文件名

选项:

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

范例:
 

bunzip2 -f demno02.c.bz2
# 解释:解压demo02.c.bz2,解压出demo02.c

bunzip2 -f demo01.c.bz demno02.c.bz2
# 解释:批量解压,解压出demo01.c,demo02.c

总结:

gzipbzip2的区别:

  •  gzip可以绕过目录递归压缩目录中的文件以及其子目录中的文件,bzip2不可以
  • gzip相比,bzip2有更高的压缩效率

gzipbzip2压缩指令不能混合使用,主要通过压缩文件的扩展名区分

打包指令:tar


说明:打包一般结合压缩使用

执行者:所有用户

语法:

tar [选项] 打包文件的名称 被打包的文件或目录路径(有多个,用空格隔开)

选项:

        -c打包

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

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

        -z打包时压缩/解包时解压缩,操作的文件扩展名为.gz,使用gzip算法

        -x解包-c-x不能同时使用

        -j打包时压缩/解包时解压缩,操作的文件扩展名为.bz2,使用bzip2算法-z-j不能同时使用

重要:

        使用-f选项时必须将其放在最后,后接文件名

举例:

-- 打包:打包不会影响文件的大小,只会将多个文件整合到一起
tar -cvf all.tar chapter01 demo01.c
# 解释:打包chapter01目录和demo01.c文件到all.tar,此时是未经过压缩,保留源
文件
tar -xvf all.tar
# 解释:解包all.tar中的chapter01目录和demo01.c文件
----------------------------------------------------------------------
-----------------------
-- 打包 + 压缩 (gzip算法)
tar -zcvf all.tar.gz chapter01 all.tar demo01.c
# 解释:打包并压缩chapter01,all.tar,demo01.c到all.tar.gz,此时经过了压
缩,保留源文件
tar -zxvf all.tar.gz
# 解释:解包并解压缩all.tar.gz中的chapter01,all.tar,demo01.c
----------------------------------------------------------------------
-----------------------
-- 打包 + 压缩 (bzip2算法)
tar -jcvf all.tar.bz2 chapter01 all.tar demo01.c
# 解释:打包并压缩chapter01,all.tar,demo01.c到all.tar.bz2,此时经过了压
缩,保留源文件
tar -jxvf all.tar.bz2
# 解释:解包并解压缩all.tar.bz2中的chapter01,all.tar,demo01.c

压缩文件或目录:zip


说明:文件的后缀名是.zip,同时支持打包和压缩

执行者:所有用户

注意:

        ① 这个指令不是Linux自带的,如果需要用,就需要额外的安装。zip压缩是跨平台

的,各个平台都能用。
        ② 当压缩一个目录时,必须使用-r 选项,否则只会压缩目录本身(空目录),不
包括目录中的文件。

安装命令:

sudo apt-get update
# 解释:更新软件

sudo apt-get install zip (注意:sudo apt-get install 文件名:将下载和
安装整合到一起了)
# 解释:安装zip工具

注意:以上命令需要在联网的环境下进行。

压缩语法:

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

解压语法:

unzip [选项] 压缩文件的文件名

选项:

        -r:递归压缩,用于对目录的操作(体现在压缩算法上,并不是真的生成多个.zip

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

举例:

zip demo01.zip demo01.c
# 解释 压缩当前路径下的demo01.c文件,压缩后文件名为demo01.zip,压缩后保留源文件(*.c)

unzip demo01.zip
# 解释:解压缩当前路径下的demo01.zip文件,如果出现同名文件,会提示用户选择性处理。

----------------------------------------------------------------------

zip chapter01.zip chapter01
# 解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件,从外部整体压缩。

unzip chapter01.zip
# 解释:解压缩当前路径下的chapter01.zip,如果出现同名文件,会提示用户选择性处理。

----------------------------------------------------------------------

zip -r chapter02.zip chapter01
# 解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件,逐层递归压缩。

unzip chapter02.zip
# 解释:解压缩当前路径下的chapter01.zip,如果出现同名文件,会提示用户选择性处理。

----------------------------------------------------------------------

zip -r all.zip chapter01/demo01.c chapter01.zip demo02.c
# 解释:批量压缩chapter01/demo01.c chapter01.zip demo02.c,压缩后名字是all.zip,逐层递归压缩

unzip all.zip
# 解释:解压缩当前路径下的all.zip,如果出现同名文件,会提示用户选择性处理。

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

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

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

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

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

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

压缩格式总结


  1. *.tar:用tar -xvf解包
  2.  *.gz:用gzip  -dgunzip解压缩
  3.  *.tar.gz *.tgz:用tar  -zxvf解压
  4. *.bz2:用bzip2  -dbunzip2解压
  5. *.tar.bz2:用tar  -jxvf解包
  6. *.zip:用unzip解压

打包压缩方式总结


zip:打包并压缩

tar + gzip:先打包,再压缩(使用gzip

tar + bzip2:先打包,再压缩(使用bzip2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值