gzip命令

  用于将一个大的文件通过压缩算法(Lempel-Ziv coding(LZ77))变成一个小的文件。gzip命令不能直接压缩目录,因此目录需要先用tar打包成一个文件,然后tar再调用gzip进行压缩。
 
-d    解开压缩文件
-v    显示指令执行的过程
-l    列出压缩文件的内容信息
 
-c    将内容输出到标准输出,不改变原始文件
-r    对目录下的所有文件递归进行压缩操作
-数字<1-9>    指定压缩率,默认为6,值越大压缩率越高
-t    测试,检查压缩文件是否完整

把目录下的每个文件都压缩成单独的.gz文件

[root@cs6 html]# ls
10.html 1.html 2.html 3.html 4.html 5.html 6.html 7.html 8.html 9.html oldboy
[root@cs6 html]# gzip *.html
[root@cs6 html]# ls
10.html.gz 2.html.gz 4.html.gz 6.html.gz 8.html.gz oldboy
1.html.gz 3.html.gz 5.html.gz 7.html.gz 9.html.gz 不解压显示上一个例子中每个压缩文件的信息。
[root@cs6 html]# gzip -l *.gz
compressed uncompressed ratio uncompressed_name
28 0 0.0% 10.html
27 0 0.0% 1.html
27 0 0.0% 2.html
27 0 0.0% 3.html
27 0 0.0% 4.html
27 0 0.0% 5.html
27 0 0.0% 6.html
27 0 0.0% 7.html
27 0 0.0% 8.html
27 0 0.0% 9.html
[root@cs6 html]# ls
10.html.gz 2.html.gz 4.html.gz 6.html.gz 8.html.gz oldboy
1.html.gz 3.html.gz 5.html.gz 7.html.gz 9.html.gz

解压文件,并显示解压过程

[root@cs6 html]# gzip -dv *.gz        #<==使用-d参数解压文件,使用-v参数显示解压过程。
10.html.gz: 0.0% -- replaced with 10.html
1.html.gz: 0.0% -- replaced with 1.html
2.html.gz: 0.0% -- replaced with 2.html
3.html.gz: 0.0% -- replaced with 3.html
4.html.gz: 0.0% -- replaced with 4.html
5.html.gz: 0.0% -- replaced with 5.html
6.html.gz: 0.0% -- replaced with 6.html
7.html.gz: 0.0% -- replaced with 7.html
8.html.gz: 0.0% -- replaced with 8.html
9.html.gz: 0.0% -- replaced with 9.html
[root@cs6 html]# ls
10.html 1.html 2.html 3.html 4.html 5.html 6.html 7.html 8.html 9.html oldboy
[root@cs6 html]#

压缩解压保留源文件

[root@cs6 html]# cp /etc/services .
[root@cs6 html]# ll -h services
-rw-r--r--. 1 root root 626K May 13 00:29 services
[root@cs6 html]# gzip -c services >services.gz #<==使用-c 选项与输出重定向符号将输出定向到services.gz。
[root@cs6 html]# ll -h services*
-rw-r--r--. 1 root root 626K May 13 00:29 services
-rw-r--r--. 1 root root 125K May 13 00:30 services.gz #<==使用-d选项解压。
[root@cs6 html]# gzip -dc services.gz >services2
[root@cs6 html]# diff services services2 #<==对比源文件和解压后的文件,没有差别。
[root@cs6 html]# ll -h services*
-rw-r--r--. 1 root root 626K May 13 00:29 services
-rw-r--r--. 1 root root 626K May 13 00:31 services2
-rw-r--r--. 1 root root 125K May 13 00:30 services.gz

经验技巧

    虽然上面使用重定向符号解决了保留源文件的问题,但是使用起来还是不太方便,因此这里告诉大家一个好方法:gzip套件包含了许多可以“在原地”处理压缩文件的实用程序。zcat、zgrep、zless、zdiff等实用程序的作用分别与cat、grep、less和diff相同,但是它们操作的是压缩的文件。比如:

[root@cs6 html]# zcat services.gz |head
# /etc/services:
# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2009-11-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
[root@cs6 html]# zcat services.gz >services  #也可以直接解压出来重定向到文件。
[root@cs6 html]#

6.2 gzip:压缩或解压文件的更多相关文章

  1. AIX系统上压缩与解压文件

    压缩. 命令格式: #tar -cvf (或xvf)+文件名+设备 C:是本地到其他设备 x:是其他设备到本地 r:是追加,比如打包时,将其他文件追加进来使用该参数. t:显示tar包里的内容,但还原 ...

  2. Linux命令学习(4):gzip压缩与解压

    版权声明:本文为博主原创文章,未经允许不得转载 引子 gzip是Linux系统中最常用也是高效的压缩压缩命令.早期Linux系统中主要使用compress命令压缩,得到后缀为“.Z”的压缩文件,但是后 ...

  3. Linux学习笔记之AIX系统上压缩与解压文件

    0x00 概述 AIX机器真难用,一时半会还真适应不了.   0x01 压缩tar 命令格式: # tar -cvf (或xvf)+文件名+设备 C:是本地到其他设备 x:是其他设备到本地 r:是追加 ...

  4. C# 压缩、解压文件夹或文件(带密码)

    今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免 ...

  5. golang tar gzip 压缩,解压(含目录文件)

    tar是用于文件归档,gzip用于压缩.仅仅用tar的话,达不到压缩的目的.我们常见的tar.gz就是用gzip压缩生成的tar归档文件. go实现tar压缩与解压与zip类似,区别在于tar需要使用 ...

  6. Linux命令(16)压缩,解压文件

    tar: 简介:tar命令只是把目录打包成一个归档(文件),并不负责压缩.在tar命令中可以带参数调用gzip或bzip2压缩.因为gzip和bzip2只能压缩单个文件. 在linux下是不需要后缀名 ...

  7. (转)使用 linux tar 命令压缩与解压文件

    原文链接 http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html tar -c: 建立压缩档案-x:解压-t:查看内容-r: ...

  8. C#工具类:使用SharpZipLib进行压缩、解压文件

    SharpZipLib是一个开源的C#压缩解压库,应用非常广泛.就像用ADO.NET操作数据库要打开连接.执行命令.关闭连接等多个步骤一样,用SharpZipLib进行压缩和解压也需要多个步骤.Sha ...

  9. 本地上传文件至服务器的技巧(linux文件压缩及解压文件)

    linux(ubuntu)文件解压及压缩文件 ubuntu支持文件的解压及压缩功能, 如果ubuntu上面没有安装过unzip工具的话,可以通过下面命令安装: sudo apt-get install ...

随机推荐

  1. Numpy 对于矩阵的操作持续更新

    >>> import numpy as np >>> a = np.random.randint(10,size=(5,5)) >>> a arr ...

  2. Hadoop完整搭建过程(三):完全分布模式(虚拟机)

    1 完全分布模式 完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍 ...

  3. 单个java文件打成可执行jar包

    1 概述 使用JDK自带的jar与java将单个java文件打成可执行jar包并运行. 当然也可以使用IDE完成,使用Maven只需要一个简单的package,但是单个文件嘛,没必要这么"凶 ...

  4. JAVAEE_Servlet_13_HttpServlet

    HttpServlet 因为每次执行前端请求,都需要获取前端的请求方式,都需判断前端的请求方式和后端是否一致,随意这段代码就可以封装起来. 写一个HttpServlet类去继承GenericServl ...

  5. CentOS7 基本概念以及安装注意事项

    什么是Linux发行版?发行版是什么意思? Linux本质上是操作系统内核,类似Chrome浏览器内核一样,Linux发行版CentOS.Redhat.Ubuntu等等都是基于Linux内核开发出来的 ...

  6. win10 添加全局快捷键

    前言 好久没写博客了,今天水一下 如何在win10 下添加一个全局唤醒的快捷键(打开截图软件) 步骤 win + Q 输入 管理工具 添加快捷方式 这里没有管理员权限,可以直接把创建好的 快捷方式 粘 ...

  7. 命令行运行py文件报错

    起因 今天用ubuntu 终端运行py文件报了个错,找不到模块? 我切换回pycharm中运行,运行一切正常 解决 在报错模块中,插入绝对路径 import sys sys.path.append(' ...

  8. php 日志处理工具 SeasLog 的使用

    首先附上seaslog github地址: https://github.com/Neeke/SeasLog/blob/master/README_zh.md php官方文档地址: https://w ...

  9. 解决docker镜像无法删除的问题

    发现问题 来自守护进程的错误响应:冲突:无法删除050f26b6caca(必须强制) - 映像在多个存储库中被引用 Error response from daemon: conflict: unab ...

  10. MySQL导入与导出SQL

    一.导入SQL 方法一: (1)选择数据库 use databaseName; (2)设置数据库编码 set names utf8; (3)导入数据(注意sql文件的路径) source **.sql ...