返回顶部
首页 > 资讯 > 操作系统 >Linux基础命令gzip的用法
  • 174
分享到

Linux基础命令gzip的用法

2023-06-06 00:06:14 174人浏览 安东尼
摘要

本篇内容介绍了“linux基础命令gzip的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!gzipgzip通过Lempel-ziv算法来

本篇内容介绍了“linux基础命令gzip的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

gzip

gzip通过Lempel-ziv算法来压缩文件,压缩的时候保留每个文件的所有者、权限、修改时间。对于符号链接,gzip将会忽略它。

如果压缩的文件名对其文件系统来说太长,则gzip将截断它。Gzip试图只截断文件名中超过3个字符的部分。(部分由点分隔。)如果名称仅由小部件组成,最长的部分将被截断。例如,如果文件名限制为14个字符,则“gzip.msdos.exe”压缩为“gzi.msd.exe.gz”。在没有文件名长度限制的系统中,名称不会被截断。

默认情况下,gzip将原始文件名和时间戳保存在压缩文件中。这些在使用“-N”选项解压缩文件时使用。当压缩文件名被截断或文件传输后没有保留时间戳时,这是非常有用的。压缩文件可以使用“gzip –d”或“gunzip”或“zcat”恢复到它们的原始形式。如果保存在压缩文件中的原始名称不适合其文件系统,则从原始文件中构造新名称以使其合法。

gunzip在其命令行中获取一个文件列表,并替换其名称以.gz、-z、-z、_z或.z结尾的每个文件,该文件以正确的魔术号开头,文件的未压缩文件没有原来的扩展名。gunzip还将特殊的扩展名.tgz和.taz分别识别为.tar.gz和.tar.z的缩写。压缩时,gzip在必要时使用.tgz扩展名,而不是截断扩展名为.tar的文件。

gunzip目前可以解压缩由gzip,zip,compress-H或Pack创建的文件.输入格式的检测是自动的。当使用前两种格式时,gunzip检查32位CRC。对于包,枪拉链检查未压缩长度。标准压缩格式的设计不是为了允许一致性检查。然而,gunzip有时能够检测到一个坏的.z文件。如果在解压缩.z文件时出现错误,请不要仅仅因为标准解压缩不抱怨而认为.Z文件是正确的。这通常意味着标准解压缩不检查其输入,并愉快地生成垃圾输出。上海合作组织压缩-H格式(lzh压缩方法)不包括一个CRC,但也允许一些一致性检查。

由zip创建的文件只有在使用“通缩”方法压缩单个成员的情况下才能被gzip解压缩。此特性仅用于帮助将tar.zip文件转换为tar.gz格式。要使用单个成员提取zip文件,可以使用诸如“gunzip  <  foo.zip”或“gunzip  –S  .zip  foo.zip”之类的命令。要提取包含多个成员的zip文件,请使用解压缩而不是gunzip。

Zcat和“gunzip  –c”是一样的。(在某些系统上,可以将zcat安装为gzcat,以保留原始链接以进行压缩。)zcat解压缩命令行上的文件列表或其标准输入,并将未压缩的数据写入标准输出。无论是否有.gz后缀,zcat都会解压缩具有正确魔术号的文件。

Gzip使用用于zip和PKZIP的Lempel-Ziv算法。获得的压缩量取决于输入的大小和常用子字符串的分布。通常,像源代码或英语这样的文本会减少60-70%.压缩通常比LZW(用于压缩)、Huffman编码(用于Pack)或自适应Huffman编码(紧凑)要好得多。

压缩总是被执行,即使压缩文件比原始文件稍大。最坏的情况是gzip文件头的几个字节,加上每32K块5个字节,或者大文件的扩展率为0.015%。注意,使用过的磁盘块的实际数量几乎从未增加。gzip在压缩或解压缩时保留文件的模式、所有权和时间戳。

此命令的适用范围:RedHat、RHEL、ubuntuCentos、SUSE、openSUSE、Fedora。

1、语法

gzip [ -acdfhlLnNrtvV19 ]  [-S suffix]  [ name ... ] 

 

2、选项列表

选项

说明

-h | --help

帮助信息

-V | --version

显示命令版本信息

-a | --ascii

文本模式,只适用于某些系统

-c | --stdout | --to-stdout

将解压文件写到标准输出,源文件不变。如果有多个输入文件,则输出由一系列独立压缩的成员组成。为了获得更好的压缩,在压缩所有输入文件之前先将它们连接起来。

-d | --decompress | --uncompress

解压

-f | --force

强制执行

-l | --list

对于每一个压缩的文件,列出压缩文件大小、解压大小、压缩比列、压缩前的文件名字

-L | --license

列出gzip的许可证

-n | --no-name

压缩文件的时候,不保留原始文件名字和时间属性

-N | --name

压缩的时候,保留原始文件和时间属性

-q | --quite

跳过所有的警告信息

-r | --recursive

递归压缩子目录

-S |.suf | --suffix | .suf

指定压缩文件后缀。压缩时,使用后缀.suf代替.gz。可以提供任何非空后缀,但应避免使用.z和.gz以外的后缀,以避免文件传输到其他系统时出现混淆。

-t | --test

测试

-v | --verbose

显示执行过程

-num | --fast | --best

使用指定的数字num调整压缩速度,其中-1或--fast表示最快的压缩方法(较小的压缩)和-9或--best表示最慢的压缩方法(最佳压缩)。默认的压缩级别是-6(也就是说,以牺牲速度为代价倾向于高压缩)。

 

3、环境变量

环境变量GZIP可以保存gzip的一组默认选项。这些选项首先被解释,可以被显式命令行参数覆盖。例如

for sh:    GZIP="-8v --name"; export GZIP

for csh:   setenv GZIP "-8v --name"

for MSDOS: set GZIP=-8v --name

在VAX/VMS上,环境变量的名称为GZIP_OPT,以避免与用于调用程序的符号设置冲突。

4、诊断信息

退出状态通常为0;如果发生错误,退出状态为1。如果发生警告,退出状态为2。

Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]

在命令行上指定了无效选项

file: not in gzip fORMat

指定给gunzip的文件尚未压缩。

file: Corrupt input. Use zcat to recover some data.

压缩文件已损坏。

file: compressed with xx bits, can only handle yy bits

gzip重新压缩文件,压缩更好,内存更少。

file: already has .gz suffix -- no change

假定该文件已被压缩。重命名该文件,然后再试一次。

file already exists; do you wish to overwrite (y or n)?

如果希望替换输出文件,请响应“y”;如果不希望替换输出文件,则响应“n”

gunzip: corrupt input

检测到SIGSEGV违规,这通常意味着输入文件已损坏。

xx.x% Percentage of the input saved by compression.

只与-v-l有关。

-- not a regular file or directory: ignored

当输入文件不是常规文件或目录(例如符号链接、套接字、FIFO、设备文件)时,它将保持不变。

-- has xx other links: unchanged

输入文件有链接;它保持不变。有关更多信息,请参见ln(1)。使用-f标志强制压缩多链接文件。

5、一些先进用法

可以连接多个压缩文件。在这种情况下,gunzip将立即提取所有成员。例如:

gzip -c file1  > foo.gz

gzip -c file2 >> foo.gz

gunzip -c foo

上面的代码等价于

cat file1 file2

如果.gz文件的一个成员被损坏,其他成员仍然可以恢复(如果损坏的成员被移除)。但是,您可以通过一次压缩所有成员来获得更好的压缩。

cat file1 file2 | gzip > foo.gz

上面的代码比下面的更好

gzip -c file1 file2 > foo.gz

如果您想要重新压缩连接的文件以获得更好的压缩,可以使用

gzip -cd old.gz | gzip > new.gz

如果一个压缩文件由多个成员组成,则--list选项报告的未压缩大小和CRC仅适用于最后一个成员。如果需要所有成员的未压缩大小,可以使用

gzip -cd file.gz | wc -c

如果希望创建一个包含多个成员的单个归档文件,以便以后可以独立提取成员,请使用一个归档程序(如tar或zip)。GNUtar支持-z选项来透明地调用gzip。gzip是作为tar的补充,而不是替代。

6、实例

1)压缩文件

[root@localhost weijie]# gzip 1.c              //压缩

[root@localhost weijie]# ls                     //压缩之后,源文件被删除了

11.c  1.c.gz  2.c  3.c  4.c  5.c  6.c  foo

2)解压

[root@localhost weijie]# gzip -ld 1.c.gz       //解压,并显示详细过程

         compressed        uncompressed  ratio uncompressed_name

                 70                  53   9.4% 1.c

3)将两个文件压缩到一个文件中

[root@localhost weijie]# cat 1.c 2.c                   //输出两个文件的内容

hello world, 

i am david. 

i love linux, 

love code.

123

23

212

[root@localhost weijie]# gzip –c 1.c > foo.gz        //1.c压缩到foo

[root@localhost weijie]# gzip –c 2.c >> foo.gz       //2.c压缩到foo

[root@localhost weijie]# gzip -d foo.gz               //解压foo

[root@localhost weijie]# cat foo                       //显示foo的内容

hello world, 

i am david. 

i love linux, 

love code.

123

23

212

“Linux基础命令gzip的用法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linux基础命令gzip的用法

本文链接: https://lsjlt.com/news/245213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux基础命令gzip的用法
    本篇内容介绍了“Linux基础命令gzip的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!gzipgzip通过Lempel-ziv算法来...
    99+
    2023-06-06
  • Linux基础命令sar的用法
    本篇内容主要讲解“Linux基础命令sar的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令sar的用法”吧!sarsar指令用来收集、报告、保存系统的活动信息。sar命令将...
    99+
    2023-06-05
  • Linux基础命令mpsta的用法
    这篇文章主要介绍“Linux基础命令mpsta的用法”,在日常操作中,相信很多人在Linux基础命令mpsta的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令mpsta的用法”的疑惑有所...
    99+
    2023-06-05
  • Linux基础命令sysctl的用法
    这篇文章主要介绍“Linux基础命令sysctl的用法”,在日常操作中,相信很多人在Linux基础命令sysctl的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令sysctl的用法”的疑...
    99+
    2023-06-05
  • Linux基础命令lpstat的用法
    这篇文章主要介绍“Linux基础命令lpstat的用法”,在日常操作中,相信很多人在Linux基础命令lpstat的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令lpstat的用法”的疑...
    99+
    2023-06-05
  • Linux基础命令lpq的用法
    本篇内容介绍了“Linux基础命令lpq的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!lpqlpq指令用来显示当前打印队列的状态。如果...
    99+
    2023-06-05
  • Linux基础命令cancel的用法
    本篇内容介绍了“Linux基础命令cancel的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!cancelcancel指令用来取消已经存...
    99+
    2023-06-05
  • Linux基础命令lp的用法
    这篇文章主要讲解了“Linux基础命令lp的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令lp的用法”吧!lplp指令用来打印文件,也可以修改存在的打印任务。使用该指令...
    99+
    2023-06-05
  • Linux基础命令lpc的用法
    这篇文章主要介绍“Linux基础命令lpc的用法”,在日常操作中,相信很多人在Linux基础命令lpc的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令lpc的用法”的疑惑有所帮助!接下来...
    99+
    2023-06-05
  • Linux基础命令elinks的用法
    本篇内容主要讲解“Linux基础命令elinks的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令elinks的用法”吧!elinkselinks指令是一个纯文本格式的浏览器...
    99+
    2023-06-05
  • Linux基础命令htdigest的用法
    本篇内容介绍了“Linux基础命令htdigest的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!htdigesthtdigest指令用...
    99+
    2023-06-05
  • Linux基础命令httpd的用法
    本篇内容介绍了“Linux基础命令httpd的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!httpdhttpd是apache超文本传输...
    99+
    2023-06-05
  • Linux基础命令exportfs的用法
    本篇内容介绍了“Linux基础命令exportfs的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!exportfsexportfs主要用...
    99+
    2023-06-05
  • Linux基础命令nfsstat的用法
    这篇文章主要讲解了“Linux基础命令nfsstat的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令nfsstat的用法”吧!nfsstatnfsstat指令用来显示n...
    99+
    2023-06-05
  • Linux基础命令mailq的用法
    这篇文章主要讲解了“Linux基础命令mailq的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令mailq的用法”吧!mailqmailq指令可以显示出待发送的邮件队列...
    99+
    2023-06-05
  • Linux基础命令mysqlshow的用法
    这篇文章主要讲解了“Linux基础命令mysqlshow的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令mysqlshow的用法”吧!mysqlshowmysqlsho...
    99+
    2023-06-05
  • Linux基础命令mysqldump的用法
    这篇文章主要讲解了“Linux基础命令mysqldump的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令mysqldump的用法”吧!mysqldumpmysqldum...
    99+
    2023-06-05
  • Linux基础命令accept的用法
    本篇内容介绍了“Linux基础命令accept的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!acceptaccept指令用来设置允许向...
    99+
    2023-06-05
  • Linux基础命令IP的用法
    这篇文章主要讲解了“Linux基础命令IP的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令IP的用法”吧!ip      ip指令可以显示...
    99+
    2023-06-05
  • Linux基础命令traceroute的用法
    这篇文章主要介绍“Linux基础命令traceroute的用法”,在日常操作中,相信很多人在Linux基础命令traceroute的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令trac...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作