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进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的

Linux编译器--gcc/g++使用方式

《Linux编译器--gcc/g++使用方式》文章主要介绍了C/C++程序的编译过程,包括预编译、编译、汇编和链接四个阶段,并详细解释了每个阶段的作用和具体操作,同时,还介绍了调试和发布版本的概念... 目录一、预编译指令1.1预处理功能1.2指令1.3问题扩展二、编译(生成汇编)三、汇编(生成二进制机器语

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

Linux部署jar包过程

《Linux部署jar包过程》文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法... 目录linux部署jar包1.统一jdk版本2.打包插件依赖3.修改密码4.执行jar包总结Linux部署jar包部署

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例