gzip/gunzip 指令 ( .gz  不能压缩目录)

gzip 用于压缩文件, gunzip 用于解压的 。

gzip

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率

没有的话手动安装


yum -y install zip gzip (--安装压缩工具)

常用选项 


-c:-stdout在标准输出上写入,保持原始文件不变 -r:递归处理,将指定目录下的所有文件及子目录一并处理; -v:显示指令执行过程; -d:解开压缩文件;(decompression 解压) -a:使用ASCII文字模式; -f:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接; -h:在线帮助; -l:列出压缩文件的相关信息; -L:显示版本与版权信息; -n:压缩文件时,不保存原来的文件名称及时间戳记; -N:压缩文件时,保存原来的文件名称及时间戳记; -q:不显示警告信息; -S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串; -t:测试压缩文件是否正确无误; -V:显示版本信息; -<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高; --best:此参数的效果和指定“-9”参数相同; --fast:此参数的效果和指定“-1”参数相同。

基本语法      


gzip 文件     (功能描述:压缩文件,只能将文件压缩为 *.gz 文件)      

应用实例  

压缩到指定目录 (需要加上参数 -c)

案例1: gzip压缩, 将 /home下的 hello.txt文件进行压缩            gzip /home/hello.txt

案例2: gzip压缩, 将 /home下的 a.txt、b.txt、c.txt  文件进行压缩

案例3:  把test目录下的每个文件压缩成 .gz 文件。 gzip  *

案例4:  把案例4中每个压缩的文件解压,并列出详细的信息。 gzip -dv *

案例5:  详细显示案例3中每个压缩的文件的信息,并不解压。gzip -l *

案例6:  压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz。gzip -r log.tar

案例7:  递归的压缩目录。gzip -rv test

这样,所有test下面的文件都变成了*.gz目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

案例9: 递归地解压目录。gzip -dr test

案例10:  为了保留原有的文件,我们可以加上 -c 选项并利用 linux 的重定向 ,这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样  。

压缩到指定目录: /home有两个目录 aaa bbb  aaa里面有文件a.txt,我把a.txt压缩到bbb目录里面。

gzip -c aaa/a.txt > bbb/test.gz

把上面压缩的 test.gz  解压到指定 hehe 目录   gunzip -c bbb/test.gz > hehe/test.txt

如果是放在当前目录的话: gunzip -c bbb/test.gz > ./test.txt

细节说明

当我们使用gzip对文件进行压缩后,保留原来的文件

gunzip

gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为 .gz 。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。( gzip –d等价于gunzip 命令)

基本语法      


gunzip 文件.gz    (功能描述:解压缩文件命令)

常用选项


-a:使用ASCII文字模式; -c:把解压后的文件输出到标准输出设备; -f:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接; -h:在线帮助; -l:列出压缩文件的相关信息; -L:显示版本与版权信息; -n:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理; -N:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上; -q:不显示警告信息; -r:递归处理,将指定目录下的所有文件及子目录一并处理; -S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串; -t:测试压缩文件是否正确无误; -v:显示指令执行过程; -V:显示版本信息;

 应用实例

案例1: gunzip压缩, 将 /home下的 hello.txt.gz 文件进行解压缩     gunzip hello.txt.gz


zip/unzip指令 .zip

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的 。

zip

zip 是我们最常用的压缩命令,通过该命令可以将目录或者文件压缩成扩展名为“ .zip ”的压缩文件。

常用选项


-r 递归处理,将指定目录下的所有文件和子目录进行压缩。
-f 仅将源目录下的发生变更的文件压缩到zip文件中,源目录下新增的文件不进行压缩。
-u 与-f参数类似,但是除了更新的文件外,也会将源目录中的其它文件压缩到zip文件中。
-m 将文件压缩到zip文件中,同时删除目录下的该文件。
-j 只保存文件名称及其内容,丢弃目录结构。
-l 压缩文件时,将 LF 字符置换成 LF+CR 字符。
-ll 压缩文件时,将 CR + LF 字符置换成 LF 字符。
-1 压缩效率,值为1-9,1为压缩效率最高。
-9 压缩效率,值为1-9,1为压缩效率最高。
-v 显示指令执行过程、显示版本信息。
-c 为每个被压缩的文件增加注释。
-z 为zip文件增加注释。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-x 不压缩 -x 指定的文件。
-i 只压缩 -i 指定的文件。
-D 压缩文件内不建立目录。
-A 调整可执行的自动解压缩文件。
-J 删除压缩文件前面不必要的数据。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件。
-e 采用标准的PKZip 2.0进行加密,提示输入密码。
-n 不压缩文件名以制定字符串结尾的文件。
-h2 显示详细的帮助信息。

基本语法


zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]  
zip      [选项] XXX.zip  需要压缩的内容(功能描述:压缩文件和目录的命令)

应用实例      

案例1:  将 /home下的 所有文件进行压缩成 mypackage.zip    zip  -r  mypackage.zip  /home/   或者   zip  -r  mypackage.zip  /home/*        

案例2:  指定压缩目录    /home 有如下目录。 zip -r aaa/test.zip bbb/

unzip

通过 unzip 命令将扩展名为“ .zip ”的压缩文件进行解压缩。

基本语法


unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
unzip [选项] XXX.zip    (功能描述:解压缩文件)

常用选项    


-d 指定文件解压缩后所要存储的目录。
-p 小写,将解压缩的文件数据以二进制格式(存储的格式)输出到屏幕上。
-P 大写,使用 unzip 的密码选项。
-l 显示压缩文件内所包含的文件。
-t 测试压缩文件。
-u 与-f参数类似,但是除了更新的文件外,也会将zip文件中的其它文件解压缩到目录中。
-z 显示压缩文件的注释。
-T 把 zip 文件中的最新的文件时间设置为zip文件的timestamp。
-x 不解压 -x 指定的文件。
-q 设置为 quiet 模式。
-qq 设置为 quieter 模式。
-o 不必先询问用户,直接覆盖原有文件。
-a 将文本文件格式转换为本地操作系统的格式。
-aa 将所有的文件作为文本文件来对待。
-U 启用Unicode,显示以十六进制的 #Uxxxx 或者 #Lxxxxxx 进行 ASCII 文本转义的非本地字符。旧版本中 -U 将压缩文件中的全部文件名改为大写。
-UU 启用Unicode,禁用使用UTF-8存储路径。UTF-8路径被处理成 Unicode 后,存储为本地路径。
-L 将压缩文件中的全部文件名改为小写。
-X 解压缩时恢复文件原来的UID/GID。
-V 保留VMS的文件版本信息。
-M 将输出结果送到 more 管道中。
-hh 显示详细的帮助信息。

应用实例      

案例2:  将 mypackge.zip 解压到 /opt/tmp 目录下      unzip –d /opt/tmp  mypackage.zip   [如果/opt/tmp 不存在,会自动创建]


tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]

基本语法


tar  [选项]  XXX.tar.gz  打包的内容/目录   (功能描述:打包目录,压缩后的文件格式.tar.gz)  

选项说明  

选项 功能
-c 产生 .tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩 (压缩带上)
-x 解包 .tar 文件 (解压带上)

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件 以上五个是独立的命令参数,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 gz
-j:有bz2属性的 bz2
-J :有xz属性的 xz
-Z:有compress属性的 -v:显示所有过程
-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

应用实例

案例1:   将所有 .jpg 的文件打成一个名为all.tar的包。  tar -cf all.tar  *.jpg  -c 是表示产生新的包,-f 指定包的文件名。



案例2:   将所有 .gif 的文件增加到all.tar的包里面去, tar -rf all.tar *.gif  -r是表示增加文件的意思。 (这样解压的话是没有任何目录的)

tar -rf all.tar  /home/photo/*.gif   这样的话是有目录的

案例3:   列出all.tar包中所有文件,  tar -tf all.tar    -t是列出文件的意思

案例3:   更新原来tar包 all.tar 中a.gif文件    tar -uf all.tar a.gif    -u是表示更新文件的意思。

案例4:   解出all.tar包中所有文件, tar -xf all.tar   -x是解开的意思

案例5:  将目录里所有jpg文件打包成 tar.jpg 。tar -cvf jpg.tar *.jpg

案例6:  将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz 。

tar -czf jpg.tar.gz *.jpg

案例7:  将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2。

tar -cjf jpg.tar.bz2 *.jpg

案例8:  将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z。tar -cZf jpg.tar.Z *.jpg

案例9:  rar格式的压缩,需要先下载rar for linux。rar a jpg.rar *.jpg

案例10:  zip格式的压缩,需要先下载zip for linux。zip jpg.zip *.jpg

tar -xvf file.tar                    //解压 tar包

tar -xzvf file.tar.gz             //解压tar.gz

tar -xjvf file.tar.bz2            //解压 tar.bz2

tar -xZvf file.tar.Z              //解压tar.Z

tar -Jxvf fle.tar.xz              //解压tar.xz

unrar e file.rar                   //解压rar

unzip file.zip                      //解压zip

案例11:  压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成  a.tar.gz     tar -zcvf a.tar.gz a1.txt a2.txt

案例12:  将/home 所有的文件夹压缩成 myhome.tar.gz    tar -zcvf myhome.tar.gz  /home/ 

案例13:   将 a.tar.gz  解压到当前目录       tar -zxvf a.tar.gz  

案例14: 将myhome.tar.gz  解压到 /opt/tmp2目录下   tar -zxvf myhome.tar.gz -C  /opt/temp2 (temp2 需要手动创建)

细节:

指定解压到的那个目录,事先要存在才能成功,否则会报错。

总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar -xzf 解压   tar.xz  用 tar -Jxvf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

来源:https://blog.csdn.net/qq_40794973/article/details/86499246

Linux里面的压缩和解压类指令的更多相关文章

  1. Linux 时间日期类、搜索查找类、 压缩和解压类指令

    l 时间日期类 date指令-显示当前日期 基本语法 1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) ...

  2. linux学习之路第七天(压缩和解压类指令详解)

    压缩和解压类 1.gzip/gunzip 指令 gzip 指令用于压缩文件, gunzip用于解压的 基本语法 gzip 文件 (功能描述:压缩文件,指令将文件压缩成*.gz文件) gunzip 文件 ...

  3. Linux压缩和解压类指令

    一.gzip / gunzip  指令 gzip 用于压缩文件,gunzip 用于解压文件. 基本语法gizp  文件 (功能描述:只能将文件压缩为*.gz文件)gunzip  文件.gz (功能描述 ...

  4. linux 实用指令压缩和解压类

    linux 实用指令压缩和解压类 目录 linux 实用指令压缩和解压类 gzip/gunzip指令(不常用) zip/unzip指令 tar指令(常用) gzip/gunzip指令(不常用) 说明 ...

  5. Linux时间日期类,压缩和解压类

    一.时间日期类 1.data指令 1.基本指令 date 显示当前日期 data +%Y 显示当前年份 data +%m 显示当前月份 data +%d 显示当前天 data +%Y-%m-%d %H ...

  6. Linux压缩和解压类

    gzip/gunzip gzip 文件:压缩文件为.gz gunzip 文件:解压文件 注: 1. 只能压缩和解压文件 2. 只是将hello.txt压缩成hello.txt.gz,并没有改变存储位置 ...

  7. Linux下的压缩和解压

    1. gzip, bzip2 能否直接压缩目录呢?不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1 ...

  8. 【Linux基础】压缩和解压

    Linux 常用的压缩与解压文件类型:.tar,.gz..tar.gz,.bz2..tar.bz2,.Z..tar.Z,.zip,.rar等. Linux 常用的压缩与解压缩命令有:tar,gzip. ...

  9. Linux指令(压缩和解压类)

    gzip/gunzip 指令 gzip用于压缩文件,gunzip用于解压基本语法: gzip文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip文件.gz (功能描述:解压缩文件命 ...

随机推荐

  1. 解决:While reading from '/Users/***/.pip/pip.conf' [line 4]: option 'extra-index-url' in section 'global' already exists

    解决:While reading from '/Users/***/.pip/pip.conf' [line 4]: option 'extra-index-url' in section 'glob ...

  2. [PyTorch 学习笔记] 4.1 权值初始化

    本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/grad_vanish_explod.py 在搭建好网络 ...

  3. 【洛谷日报#26】GCC自带位运算系列函数

    文章转自 洛谷 谈到GCC的黑科技,大家想到的一定是这句: #pragma GCC optimize (3)//吸氧 抑或是这句: #pragma GCC diagnostic error " ...

  4. 使用rabbitmq过程中遇到的问题及解决方法记录。

    OS: Linux ---Centos7RabbitMQ版本:RabbitMQ version: 3.8.1erlang版本:Erlang configuration: Erlang/OTP 22 [ ...

  5. 关于action的使用在firefox报错的问题

    现在的网站有很多都是鼠标移到上面去才会显示出相应的一些标签之类的东西,然后再进行操作,但是因为要操作的元素一开始是隐藏的,就没办法直接定位,只能调用action来模拟鼠标悬停操作,也就是下面这句代码: ...

  6. Shader 的 Blend

    Blend SrcAlpha OneMinusSrcAlpha //alpha blending Blend One OneMinusSrcAlpha //premultiplied alpha bl ...

  7. 初级知识点二——C#值传递

    C#中有值传递和引用传递,这个东西一直有点儿绕,今天花点儿时间来把这个事情搞清楚. 传递值类型的参数 值类型的变量,是直接包含其数据的.实际上,在向方法传递一个值类型变量,其实就意味着向方法传递了一个 ...

  8. STS 使用lombox.jar

    在Maven本地仓库中找到 将lombox.jar放在与STS.exe平级的目录下, 然后安装完了以后可能会出先打不开的情况.这个时候只要打开STS.ini文件. 然后修改文件保存

  9. JS -- JavaScript简介

    JavaScript是一种属于网络的高级脚本语言(解释性脚本语言),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果. 一.如何插入JS代码? 使用&l ...

  10. [LeetCode]198. 打家劫舍(DP)

    题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个 ...