Linux总结(九):linux文件归档和压缩——linux的zip、unzip、gzip、gunzip、bzip2、bunzip2命令

2024-04-28 05:18

本文主要是介绍Linux总结(九):linux文件归档和压缩——linux的zip、unzip、gzip、gunzip、bzip2、bunzip2命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Linux的zip命令

1、基本格式

[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表
zip 命令常用选项及含义
选项含义
-r递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
-m将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
-v显示详细的压缩过程信息。
-q在压缩的时候不显示命令的执行过程。
-压缩级别压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。
-u更新压缩文件,即往压缩文件中添加新文件。

2、使用zip

[root@localhost ~]# zip test.zip install.log install.log.syslog
adding: install.log (deflated 72%)
adding: install.log.syslog (deflated 85%)
#同时压缩多个文件到test.zip压缩包中
[root@localhost ~]# mkdir dir1
#建立测试目录
[root@localhost ~]# zip -r dir1.zip dir1
adding: dir1/(stored 0%)
#压缩目录

              注意:(1)所有的压缩命令都可以同时压缩多个文件

                         (2) 使用 zip 命令压缩目录,需要使用“-r”选项

二、unzip命令:解压zip文件

1、基本格式

[root@localhost ~]# unzip [选项] 压缩包名
unzip 命令常用选项及含义
选项含义
-d 目录名将压缩文件解压到指定目录下。
-n解压时并不覆盖已经存在的文件。
-o解压时覆盖已经存在的文件,并且无需用户确认。
-v查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。
-t测试压缩文件有无损坏,但并不解压。
-x 文件列表解压文件,但不包含文件列表中指定的文件。

2、应用

[root@localhost ~]# unzip dir1.zip
直接解压缩
[root@localhost ~]# unzip -d /tmp/ ana.zip
用-d手动制定解压缩位置

 三、gzip命令:压缩文件或目录

gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。

 1、基本格式

[root@localhost ~]# gzip [选项] 源文件
表 1 gzip 命令常用选项及含义
选项含义
-c将压缩数据输出到标准输出中,并保留源文件。
-d对压缩文件进行解压缩。
-r递归压缩指定目录下以及子目录下的所有文件。
-v对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。
-l对每一个压缩文件,显示以下字段:
  • 压缩文件的大小;
  • 未压缩文件的大小;
  • 压缩比;
  • 未压缩文件的名称。
-数字用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。

 2、基本压缩与保留源文件压缩

[root@localhost ~]# gzip install.log
#压缩instal.log 文件
在使用 gzip 命令压缩文件时,源文件会消失
[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,
#这样可以缩文件的同时不删除源文件
[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1
[root@localhost ~]# touch test/test2
[root@localhost ~]# touch test/test3 #建立测试目录,并在里面建立几个测试文件
[root@localhost ~]# gzip -r test/
#压缩目录,并没有报错
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
#但是查看发现test目录依然存在,并没有变为压缩文件
[root@localhost ~]# ls test/
testl .gz test2.gz test3.gz
#原来gzip命令不会打包目录,而是把目录下所有的子文件分别压缩

       在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。

四、gunzip命令:解压被 gzip 压缩过的文件(扩展名为 .gz)

对于解压被 gzip 压缩过的文件,还可以使用 gzip 自己,即 gzip -d 压缩包。

1、基本格式

[root@localhost ~]# gunzip [选项] 文件
gunzip 命令常用选项及含义
选项含义
-r递归处理,解压缩指定目录下以及子目录下的所有文件。
-c把解压缩后的文件输出到标准输出设备。
-f强制解压缩文件,不理会文件是否已存在等情况。
-l列出压缩文件内容。
-v显示命令执行过程。
-t

测试压缩文件是否正常,但不对其做解压缩操作。

 2、应用实例

[root@localhost ~]# gunzip install.log.gz
#    当然,"gunzip -r"依然只会解压缩目录下的文件,而不会解打包。
#要想解压缩".gz"格式,还可以使用 "gzip -d"命令
[root@localhost ~]# gzip -d anaconda-ks.cfg.gz
[root@localhost ~]# gunzip -r test/
#    要解压缩目录下的内容,则需使用 "-r" 选项
[root@localhost ~]# zcat anaconda-ks.cfg.gz
#    如果我们压缩的是一个纯文本文件,则可以直接使用
# zcat 命令在不解压缩的情况下查看这个文本文件中的内容

五、bzip2命令:压缩文件(.bz2格式)

      bzip2 命令同 gzip 命令类似,只能对文件进行压缩,对于目录只能压缩该目录及子目录下的所有文件。当执行压缩任务完成后,会生成一个以“.bz2”为后缀的压缩包。

           注意:(.bz2) 压缩性能好,(.gz)压缩时间快

                       (.bz2)不能压缩目录   (.gz)可以用-r压缩目录下的东西,但不会打包

1、基本格式

[root@localhost ~]# bzip2 [选项] 源文件
bzip2 命令常用选项及含义
选项含义
-d执行解压缩,此时该选项后的源文件应为标记有 .bz2 后缀的压缩包文件。
-kbzip2 在压缩或解压缩任务完成后,会删除原始文件,若要保留原始文件,可使用此选项。
-fbzip2 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件。
-t测试压缩包文件的完整性。
-v压缩或解压缩文件时,显示详细信息。
-数字这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高

2、 使用

[root@localhost ~]# bzip2 anaconda-ks.cfg
此压缩命令会在压缩的同时删除源文件。
[root@localhost ~]# bzip2 -k install.log.syslog
#压缩文件和源文件都存在

六、bunzip2命令:bz2格式的解压缩命令

         要解压“.bz2”格式的压缩包文件,除了使用“bzip2 -d 压缩包名”命令外,还可以使用 bunzip2 命令。bunzip2 命令的使用和 gunzip 命令大致相同,bunzip2 命令只能用于解压文件,即便解压目录,也是解压该目录以及所含子目录下的所有文件。

 1、基本格式

[root@localhost ~]# bunzip2 [选项] 源文件
bunzip2 命令选项及含义
选项含义
-k解压缩后,默认会删除原来的压缩文件。若要保留压缩文件,需使用此参数。
-f解压缩时,若输出的文件与现有文件同名时,默认不会覆盖现有的文件。若要覆盖,可使用此选项。
-v显示命令执行过程。
-L列出压缩文件内容。

2、使用 

[root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2
#先试试使用 gunzip2 命令来进行解压缩
[root@localhost ~]# bzip2 -d install.log.syslog.bz2
#".bz2" 格式也可以使用 "bzip2 -d 压缩包" 命令来进行解压缩
[root@localhost ~]# bzcat install.log.syslog.bz2
和 ".gz" 格式一样,".bz2" 格式压缩的纯文本文件也可以不解压缩直接查看,
使用的命令是 bzcat

七、总结

              1、 tar命令是打包命令,即可以打包,又可以压缩。同理,zip也是,能将一个文件夹和文件夹下所有内容压缩到一个文件中。

              2、gzip和bzip2中,gzip可以将一个文件夹下的所有文件压缩,但是压缩后不能形成一个文件。bzip2根本就不能压缩文件夹。

              3、tar命令不仅能压缩,还能打包

              

 

这篇关于Linux总结(九):linux文件归档和压缩——linux的zip、unzip、gzip、gunzip、bzip2、bunzip2命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942402

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自