用示例讲解 Linux gunzip 命令
创始人
2024-03-01 22:38:33
0

我们已经讨论过 Linux 下 gzip 命令的用法。对于初学者来说,gzip 工具主要用于压缩或者展开文件。解压时,在 gzip 命令后添加 -d 选项即可,使用示例如下:

gzip -d [compressed-file-name]

不过,在解压或扩展 gzip 创建的压缩文件时,有另一款完全不同的工具可供使用。谈及的这款工具就是 gunzip。在本文中,我们会使用一些简单、易于理解的例子来解释 gunzip 命令的用法。文中所有示例及指南都在 Ubuntu 16.04 环境下测试。

Linux gunzip 命令

我们现在知道压缩文件可以用 gzip -dgunzip 命令解压。基本的 gunzip 语法为:

gunzip [compressed-file-name]

以下的 Q&A 例子将更清晰地展示 gunzip 工具如何工作:

Q1. 如何使用 gunzip 解压压缩文件?

解压命令非常简单,仅仅需要将压缩文件名称作为参数传递到 gunzip 命令后。

gunzip [archive-name]

比如:

gunzip file1.gz

如何使用 gunzip 解压压缩文件?

Q2. 如何让 gunzip 不删除原始压缩文件?

正如你已注意到的那样,gunzip 命令解压后会删除原始压缩文件。如果你想保留原始压缩文件,可以使用 -c 选项。

gunzip -c [archive-name] > [outputfile-name]

比如:

gunzip -c file1.gz > file1

如何让 gunzip 不删除原始压缩文件?

使用这种方式,原压缩文件不会被删除。

Q3. 如何用 gunzip 解压文件到其他路径?

在 Q&A 中我们已经讨论过 -c 选项的用法。 使用 gunzip 解压文件到工作目录外的其他路径,仅需要在重定向操作符后添加目标目录的绝对路径即可。

gunzip -c [compressed-file] > [/complete/path/to/dest/dir/filename]

示例如下:

gunzip -c file1.gz > /home/himanshu/file1

更多信息

以下从 gzip/gunzip 的 man 页中摘录的细节,对于想了解更多的人会有所助益。

gunzip 在命令行接受一系列的文件,并且将每个文件内容以正确的魔法数开始,且后缀名为 .gz-gz.z-z_z (忽略大小写)的压缩文件,用未压缩的文件替换它,并删除其原扩展名。 gunzip 也可识别一些特殊扩展名的压缩文件,如 .tgz.taz 分别是 .tar.gz.tar.Z 的缩写。在压缩时,gzip 在必要情况下使用 .tgz 作为扩展名,而不是只截取掉 .tar 后缀。

gunzip 目前可以解压 gzipzipcompresscompress -Hpack)产生的文件。gunzip 自动检测输入文件格式。在使用前两种压缩格式时,gunzip 会检验 32 位循环冗余校验码(CRC)。对于 pack 包,gunzip 会检验压缩长度。标准压缩格式在设计上不允许相容性检测。不过 gunzip 有时可以检测出坏的 .Z 文件。如果你解压 .Z 文件时出错,不要因为标准解压没报错就认为 .Z 文件一定是正确的。这通常意味着标准解压过程不检测它的输入,而是直接产生一个错误的输出。SCO 的 compress -H 格式(lzh 压缩方法)不包括 CRC 校验码,但也允许一些相容性检查。

结语

到目前为止提到的 gunzip 基本用法,并不需要过多的学习曲线。我们已包含了一个初学者开始使用它所必须了解的几乎全部知识。想要了解更多的用法,去看 man 页面 吧。


via: https://www.howtoforge.com/linux-gunzip-command/

作者:Himanshu Arora 译者:erialin 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不是gzip格式?正在下载...
要判断一个文件是否为gzip格式,可以使用以下代码示例:impor...
2024-12-28 05:01:19
不解压的情况下重命名GZI...
要在不解压的情况下重命名GZIP存档中的文件,可以使用shutil...
2024-12-25 21:01:33
避免在gzip压缩时首先将...
在进行gzip压缩时,如果需要将字符串压缩,可以直接将字符串转为输...
2024-12-17 06:00:25
编写gzip csv文件会...
编写gzip压缩的CSV文件时,不会在第一行引入随机字符。gzip...
2024-12-05 09:30:48
遍历压缩的gzip文件在第...
这个问题通常是由于在第二次迭代时解压缩gzip文件并尝试使用它导致...
2024-12-04 13:02:08
Bazel的rules_d...
Bazel的rules_docker zipper和gzip之间的...
2024-11-26 14:30:52

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...