目录
压缩与解压缩
指令
压缩指令:gzip
说明:Linux压缩文件为格式,只能压缩文件,不能压缩目录;只能压缩目录,不能打包
执行者:所有用户
语法:
gzip [选项] 文件路径
选项:
:可以将目录下的文件递归压缩/解压缩(绕过文件目录找到文件进行压缩)
:显示已经压缩文件的压缩信息
:解压缩
注意:
![]()
命令会递归压缩指定的目录下的每个文件(每个文件单独压缩成
),不会将整个目录打包成一个压缩文件。
举例:
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,解压后删除源文件



注意:
如果已经是
文件,就不能再次压缩。
另一种解压【扩展】:
语法:
gunzip [选项] 文件/目录
选项:
:可以将目录下的文件递归解压缩
范例:
gunzip demo01.c.gz
# 解释:解压demo01.c.gz
gunzip -r chapter01
# 解释:绕过指定目录递归解压demo01.c.gz,等价于gzip -rd chapter01
更高的压缩效果指令:bzip2
说明:压缩文件为格式,同样这种压缩不提供打包功能
执行者:所有用户
语法:
bzip2 [选项] 文件路径
选项:
:保留源文件,支持源文件
:解压缩
:覆盖式压缩/解压缩(压缩或者解压路径下,出现同名文件,用压缩或者解压缩后的文件覆盖)
举例:
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 [选项] 文件名
选项:
:如果压缩时保留源文件,覆盖解压
范例:
bunzip2 -f demno02.c.bz2
# 解释:解压demo02.c.bz2,解压出demo02.c
bunzip2 -f demo01.c.bz demno02.c.bz2
# 解释:批量解压,解压出demo01.c,demo02.c
总结:
和
的区别:
可以绕过目录递归压缩目录中的文件以及其子目录中的文件,
不可以
- 与
相比,
有更高的压缩效率
和
压缩指令不能混合使用,主要通过压缩文件的扩展名区分
打包指令:tar
说明:打包一般结合压缩使用
执行者:所有用户
语法:
tar [选项] 打包文件的名称 被打包的文件或目录路径(有多个,用空格隔开)
选项:
:打包
:显示命令执行的过程
:用于指定打包文件的名称
:打包时压缩/解包时解压缩,操作的文件扩展名为
,使用
算法
:解包,
和
不能同时使用
:打包时压缩/解包时解压缩,操作的文件扩展名为
,使用
算法,
和
不能同时使用
重要:
使用
选项时必须将其放在最后,后接文件名
举例:
-- 打包:打包不会影响文件的大小,只会将多个文件整合到一起
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
说明:文件的后缀名是,同时支持打包和压缩
执行者:所有用户
注意:
① 这个指令不是Linux自带的,如果需要用,就需要额外的安装。
压缩是跨平台
的,各个平台都能用。② 当压缩一个目录时,必须使用选项,否则只会压缩目录本身(空目录),不
包括目录中的文件。
安装命令:
sudo apt-get update
# 解释:更新软件
sudo apt-get install zip (注意:sudo apt-get install 文件名:将下载和
安装整合到一起了)
# 解释:安装zip工具
注意:以上命令需要在联网的环境下进行。
压缩语法:
zip [选项] 压缩后的文件名 文件/目录路径
解压语法:
unzip [选项] 压缩文件的文件名
选项:
:递归压缩,用于对目录的操作(体现在压缩算法上,并不是真的生成多个
)
注意:不带选项会保留源文件(默认保留源文件)
举例:
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,如果出现同名文件,会提示用户选择性处理。

当解压缩时,如果有同名的文件或者目录,会有提示让用户进行选择处理:
:输入
,表示覆盖文件,进行替换(单文件一个个交互处理)
:输入
,表示不覆盖文件(单文件一个个交互处理)
:输入
,表示覆盖文件夹(多文件,统一处理)
:输入
,表示不覆盖文件夹(多文件,统一处理)
:输入
,重命名解压后的文件
压缩格式总结
:用
解包
-
:用
或
解压缩
-
和
:用
解压
:用
或
解压
:用
解包
:用
解压
打包压缩方式总结
:打包并压缩
:先打包,再压缩(使用
)
:先打包,再压缩(使用
)
2293

被折叠的 条评论
为什么被折叠?



