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、Ubuntu、CentOS、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的一组默认选项。这些选项首先被解释,可以被显式命令行参数覆盖。例如
|
|
在VAX/VMS上,环境变量的名称为GZIP_OPT,以避免与用于调用程序的符号设置冲突。
4、诊断信息
退出状态通常为0;如果发生错误,退出状态为1。如果发生警告,退出状态为2。
|
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
|
5、一些先进用法
可以连接多个压缩文件。在这种情况下,gunzip将立即提取所有成员。例如:
|
|
如果.gz文件的一个成员被损坏,其他成员仍然可以恢复(如果损坏的成员被移除)。但是,您可以通过一次压缩所有成员来获得更好的压缩。
|
|
如果您想要重新压缩连接的文件以获得更好的压缩,可以使用
|
|
如果一个压缩文件由多个成员组成,则--list选项报告的未压缩大小和CRC仅适用于最后一个成员。如果需要所有成员的未压缩大小,可以使用
|
|
如果希望创建一个包含多个成员的单个归档文件,以便以后可以独立提取成员,请使用一个归档程序(如tar或zip)。GNUtar支持-z选项来透明地调用gzip。gzip是作为tar的补充,而不是替代。
6、实例
1)压缩文件
|
|
2)解压
|
|
3)将两个文件压缩到一个文件中
|
|
Linux基础命令---gzip的更多相关文章
- 【Python之路】第一篇--Linux基础命令
pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 . 表示当前目录 .. 表示上级目录 / 表示根目录 ls ...
- 常用的linux基础命令
常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...
- Linux基础命令回顾
前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...
- Linux基础命令-查看基本硬件信息
Linux基础命令-查看基本硬件信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看CPU信息 [root@node101.yinzhengjie.org.cn ~]# l ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- Linux基础命令小结(超全!!)
Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...
- Linux基础命令整合
linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...
- 第四节,Linux基础命令
第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
随机推荐
- Unity3D笔记 愤怒的小鸟<五> 小鸟动画+Unity3D如何设置断点调式
前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了. 实现的效果 using UnityEngine; using System.Collections; /// < ...
- Unity3D笔记 愤怒的小鸟<四> 实现Selelction界面
一直跟着龚老师用js写,VS智能感应用习惯后发现这里用js对初学者比较蛋疼,MONO有提示但是还是无法和VS媲美就目前来看.所以这次还是换成熟悉的VS来开发. 目标:实现关卡页面 跑起来的效果如下: ...
- iOS - 开发代码部分规范
1. 关于命名 1.1 统一要求 含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释 使用全称,不适用缩写 1.2 类的命名 大驼峰式命名:每个单词的首字母都采用大写字母 例子:MFHom ...
- Deplearning.AI-吴恩达【中文课后作业】
[吴恩达课后作业目录] 课程 周数 名称 类型 语言 地址 课程1 - 神经网络和深度学习 第1周 深度学习简介 测验 中英 传送门 无编程作业 编程作业 —— —— 第2周 神经网络基础 测验 中英 ...
- POJ1797 Heavy Transpotation
Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand bu ...
- HDU 2602 - Bone Collector - [01背包模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...
- Gym - 101028I March Rain 二分
http://codeforces.com/gym/101028/problem/I 题意:给你n个洞,k个布条,问布条能贴到所有洞时的最小值. 题解:二分答案,因为答案越大就越容易满足条件. 技巧: ...
- python3学习笔记(9)_closure
#python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数, ...
- ddt ddl dml
data-definition language 数据定义语言 data-manipulation language 数据操纵语言 data type definition 文档类型定义
- SpringMVC:JSON形式输出(基于Fastjson)
在Spring3.0中,@ResponseBody标记可以将对象"封装"为JSON形式的数据,并输出,下面的例子中使用的是阿里的Fastjson JSONaz解析工具,在sprin ...