首页 > 运维 > linux运维 > 正文

linux gzip压缩命令如何使用

WBOY
发布: 2023-06-02 12:17:00
转载
3479 人浏览过

在linux中,gzip命令用于对文件进行压缩和解压缩,通过此命令压缩得到的新文件,其扩展名通常标记为“.gz”,使用语法为“gzip [选项] 源文件”。普通文件在压缩操作时被称为语法中的源文件,而在解压缩操作时,压缩文件则是指的源文件。即使指定了一个目录,gzip命令仅能压缩目录中的所有文件,而无法压缩整个目录。

gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为“.gz”。

请注意,gzip 命令仅适用于压缩文件,无法压缩目录。即使指定了一个目录,它也只会压缩该目录下的所有文件。

gzip 命令的基本格式如下:

[root@localhost ~]# gzip [选项] 源文件
登录后复制

命令中的源文件,当进行压缩操作时,指的是普通文件;当进行解压缩操作时,指的是压缩文件。该命令常用的选项及含义如表 1 所示。

表 1 gzip 命令常用选项及含义
选项含义
-c将压缩数据输出到标准输出中,并保留源文件。
-d对压缩文件进行解压缩。
-r递归压缩指定目录下以及子目录下的所有文件。
-v对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。
-l对每一个压缩文件,显示以下字段:
  • 压缩文件的大小;

  • 未压缩文件的大小;

  • 压缩比;

  • 未压缩文件的名称。

-数字用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。

【例 1】基本压缩

gzip 压缩命令非常简单,甚至不需要指定压缩之后的压缩包名,只需指定源文件名即可。我们来试试:

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">[root@localhost ~]# gzip install.log #压缩instal.log 文件 [root@localhost ~]# ls anaconda-ks.cfg install.log.gz install.log.syslog #压缩文件生成,但是源文件也消失了</pre><div class="contentsignin">登录后复制</div></div><p>【例 2】保留源文件压缩 </p>

当使用 gzip 命令压缩文件时,源文件会被删除,并生成一个压缩文件。这时有些人会有强迫症,就逼问笔者:能不能在压缩文件的时候,不让源文件消失?好吧,也是可以的,不过很别扭。

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">[root@localhost ~]# gzip -c anaconda-ks.cfg &gt;anaconda-ks.cfg.gz #使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样可以缩文件的同时不删除源文件 [root@localhost ~]# ls anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog #可以看到压缩文件和源文件都存在</pre><div class="contentsignin">登录后复制</div></div><p>【例 3】 压缩目录 </p>

我们可能会想当然地认为 gzip 命令可以压缩目录。 我们来试试:

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">[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命令不会打包目录,而是把目录下所有的子文件分别压缩</pre><div class="contentsignin">登录后复制</div></div><p>在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。 </p>

案例演示:

压缩文件

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false"> [root@localhost ~]# ls //显示当前目录文件 a.c b.h d.cpp [root@localhost ~]# gzip * //压缩目录下的所有文件 [root@localhost ~]# ls //显示当前目录文件 a.c.gz b.h.gz d.cpp.gz [root@localhost ~]#</pre><div class="contentsignin">登录后复制</div></div><p>接范例1, 列出详细的信息 </p>

gzip -dv * //解压文件,并列出详细信息
登录后复制

linux gzip压缩命令如何使用

接范例1,显示压缩文件的信息

gzip -l *
登录后复制

linux gzip压缩命令如何使用

以上是linux gzip压缩命令如何使用的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!