专栏首页C/C++基础Linux 命令(117)—— gzip 命令

Linux 命令(117)—— gzip 命令

1.命令简介

gzip(GNU zip)命令用来压缩和解压缩文件,是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,采用 LZ77 无损压缩算法,压缩后的文件一般使用 .gz 后缀。

gzip 不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和 tar 命令一起构成 Linux 操作系统中比较流行的压缩文件格式。据统计,gzip 命令对文本文件有 60%~70% 的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

2.命令格式

gzip [ -acdfhlLnNrtvV19 ] [-S SUFFIX] [ NAME... ]

3.选项说明

-a --ascii
	使用 ASCII 文字模式。在转换行末字符时使用本地约定。此选项仅在某些非 Unix 系统上支持。对于 MSDOS,压缩时将 CR LF 转换为 LF,解压缩时将 LF 转换为 CR LF
-c, --stdout, --to-stdout
	把压缩后的文件输出到标准输出,不去变更原始文件
-d, --decompress, --uncompress
	解压缩
-f, --force
	强制压缩或解压缩,即使文件具有多个链接或相应的文件已经存在,或者压缩数据是从终端读取或写入终端的
-h, --help
	显示帮助信息并退出
-l, --list
	列出压缩文件的相关信息
-L, --license
	显示版权信息并退出
-n, --no-name
	压缩文件时,不保存原来的文件名称及时间戳。解压缩时,即使原文件名和时间戳存在也不还原。该选项为解压缩时的默认选项
-N, --name
	压缩时,始终保存原始文件名和时间戳;这是默认的。解压缩时,如果存在,则恢复原始文件名和时间戳。此选项对于限制文件名长度的系统或在文件传输后丢失时间戳的系统非常有用
-q, --quiet
	不显示警告信息
-r, --recursive
	递归处理,将指定目录下的所有文件及子目录一并处理
-S, --suffix=SUFFIX
	更改压缩后解压缩后的文件的后缀名
-t, --test
	测试压缩文件是否正确无误
-v, --verbose
	显示指令执行过程
-V, --version
	显示版本信息并退出
-#, --best, --fast
	指定压缩效果。压缩率是一个介于 1~9 的数值,数值越大,压缩率越高,压缩速度越低,缺省为 6。--best 等同于 -9,--fast 等同于 -1

4.常用示例

(1)不保留原文件压缩。

gzip /etc/passwd

压缩后的 /etc/passwd 将变为 /etc/passwd.gz。

(2)保留原文件压缩。

gzip -c /etc/passwd > passwd.gz

(3)压缩时显示指令执行过程。

gzip -v /etc/passwd
/etc/passwd:	 57.9% -- replaced with /etc/passwd.gz

(4)解压 .gz 文件,不保留原文件。

gzip -dv /etc/passwd.gz
/etc/passwd.gz:	 57.9% -- replaced with /etc/passwd

(5)递归压缩指定目录下的所有文件。

ls dir
file1  file2  file3

gzip -rv dir
dir/file3:	-10.0% -- replaced with dir/file3.gz
dir/file2:	-25.0% -- replaced with dir/file2.gz
dir/file1:	-16.7% -- replaced with dir/file1.gz

参考文献


[1] gzip(1) manual [2] Linux 命令大全.gzip 命令

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL对CREATE TABLE IF NOT EXISTS SELECT的处理

    MySQL支持创建持数据表时判断是否存在,存在则不创建,不存在则创建,相应语句如下:

    Dabelv
  • Shell反引号、$()和${}的区别

    反引号和$()的作用相同,用于命令替换(command substitution),即完成引用的命令的执行,将其结果替换出来,与变量替换差不多。比如:

    Dabelv
  • C++ struct与union

    编码运行环境:VS2017+Win32+Debug,Win32表示生成32bits的应用程序。

    Dabelv
  • 用户太苦了!找什么清洁无毒的压缩软件,就没人注意到最后一个吗

    相对于windows下的鼠标点点拖拖,linux在终端,大概率是用不着界面操作文件和文件夹的。

    程序员小助手
  • [ 项目篇 ] 01 - 从无到有打造一款开源的智能音箱

    这一系列文章的写作应该是2019年主要的投入,也是对 2017/2018年工作上上的总结。记得入门Linux 的时候,从如何实现按键/LED的操作,到现在接触到...

    程序手艺人
  • Redis SCAN的使用

    有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来手动处理数据,可能是修改它的值,也可能是删除 key。这里就有一个问题,如何从...

    小歪
  • Java Maven项目之Nexus私服搭建和版本管理应用

    目录: Nexus介绍 环境、软件准备 Nexus服务搭建 Java Maven项目版本管理应用 FAQ 1、Nexus介绍 Nexus是一个强大的Mave...

    哎_小羊
  • 暴风TV启用bftv.com 获8亿融资

    暴风TV获得8亿元来自东山精密和如东鑫濠的战略投资。其官网域名系bftv.com。

    躲在树上的域小名
  • COM学习(二)——COM的注册和卸载

    COM组件是跨语言的,组件被注册到注册表中,在加载时由加载函数在注册表中查找到对应模块的路径并进行相关加载。它的存储规则如下: 1. 在注册表的HKEY_C...

    Masimaro
  • C++11模板:如何判断类中是否有指定名称的成员变量?

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648

扫码关注云+社区

领取腾讯云代金券