外观
压缩和解压缩命令
在Linux中可以识别的常见压缩格式有十几种,比如".zip"、".gz"、".bz2"、".tar"、".tar.gz"、".tar.bz2"等。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间
".zip" 格式
".zip"是Windows中最常见的压缩格式,Liunx也可以正确识别".zip"格式,这可以方便地和Windows系统通用压缩文件。
8.1.1 zip 命令
zip命令就是".zip"格式的压缩命令,基本信息如下:
- 命令名称:zip
- 英文原意:package and compress(archive) files
- 所在路径:/usr/bin/zip
- 执行权限:所有用户
- 功能描述:压缩文件和目录
命令格式:zip [选项] 压缩包名 源文件或目录
- 选项:
-r:压缩目录递归处理,将指定目录下的所有文件和子目录一并处理
8.1.2 unzip 命令
unzip命令就是".zip"格式的解压缩命令,基本信息如下:
- 命令名称:unzip
- 英文原意:list, test and extract compressed files in a zip archive
- 所在路径:/usr/bin/unzip
- 执行权限:所有用户
- 功能描述:列表、测试和提取压缩文件中的文件
命令格式:unzip [选项] 压缩包名
- 选项:
-d:指定解压的位置
".gz" 格式
".gz"格式是Linux中最常见的压缩格式。
8.2.1 gzip 命令
gzip命令是".gz"格式的压缩和解压缩命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。注意:gzip不会打包文件,压缩的过程源文件会对应变为".gz"格式的压缩文件(源文件被删除),解压缩的过程将".gz"格式的压缩文件再恢复成对应的源文件。基本信息如下:
- 命令名称:gzip
- 英文原意:compress or expand files
- 所在路径:/bin/gzip
- 执行权限:所有用户
- 功能描述:压缩或解压缩 ".gz" 格式的文件或目录
命令格式:gzip [选项] 源文件
- 选项:
-d:执行解压缩-r:递归处理,将指定目录下的所有文件及子目录一并处理-c:将压缩数据输出到标准输出中,可以保留源文件- 使用"-c"选项,压缩数据会直接输出到屏幕上,为了不让压缩数据输出到屏幕上而是重定向到压缩文件中,并且同时保留源文件,命令可以这样写:
gzip -c abc > abc.gz
- 使用"-c"选项,压缩数据会直接输出到屏幕上,为了不让压缩数据输出到屏幕上而是重定向到压缩文件中,并且同时保留源文件,命令可以这样写:
-l:列出压缩文件的相关信息
8.2.2 gunzip 命令
gunzip命令用来解压缩 ".gz" 格式的文件(即使用 "gzip" 命令压缩的文件),作用相当于 "gzip -d 压缩文件",因此不论是压缩或解压缩,都可通过 "gzip" 指令单独完成。基本下信息如下:
- 命令名称:gunzip
- 英文原意:expand files
- 所在路径:/bin/gunzip
- 执行权限:所有用户
- 功能描述:解压缩".gz" 格式的文件或目录
命令格式:gunzip [选项] 压缩文件
- 选项:
-r:递归处理,将指定目录下的所有文件及子目录一并处理-c:把解压后的文件数据输出到标准输出中,可以保留压缩文件-l:列出压缩文件的相关信息
".bz2" 格式
".bz2" 格式是Linux的另一种压缩格式,从理论上来讲,".bz2" 格式的算法更新进、压缩比更好;而 ".gz" 格式相对来讲压缩的时间更快
8.3.1 bzip2 命令
bzip2 命令是 ".bz2" 格式文件的压缩和解压缩命令。注意:"bzip2"不能用来压缩目录。基本信息如下:
- 命令名称:bzip2
- 英文原意:a block-sorting file compressor
- 所在路径:/usr/bin/bzip2
- 执行权限:所有用户
- 功能描述:压缩或解压缩 ".bz2" 格式的文件
命令格式:bzip2 [选项] 源文件
- 选项:
-d:执行解压缩-k:压缩或解压缩后,会删除原始文件,若要保留原始文件,请使用此参数-f:在压缩或解压缩时,若输出文件与现有文件同名,强制覆盖现有文件-c:将压缩与解压缩的数据输出到标准输出中
8.3.2 bunzip2 命令
bunzip2命令用来解压缩 ".bz2" 格式的文件(即使用 "bzip2" 命令压缩的文件),作用相当于 "bzip2 -d 压缩文件",因此不论是压缩或解压缩,都可通过 "bzip2" 指令单独完成。基本信息如下:
- 命令名称:bunzip2
- 英文原意:a block-sorting file compressor
- 所在路径:/usr/bin/bunzip2
- 执行权限:所有用户
- 功能描述:解压缩 ".bz2" 格式的文件
命令格式:bunzip2 [选项] 压缩文件
- 选项:
-k:bzip2在解压缩后,会删除原始压缩文件,若要保留原始压缩文件,请使用此参数-f:解压缩时,若输出的文件与现有文件同名时,强制覆盖现有的文件-c:将解压缩的数据输出到标准输出中
".tar"、".tar.gz"、".tar.bz2" 格式
tar命令可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。注意:打包和压缩是两个不同的概念,打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?这源于Linux中很多压缩程序(gzip、bzip2)只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar),然后再用压缩程序进行压缩。tar命令基本信息如下:
- 命令名称:tar
- 英文原意:tar
- 所在路径:/usr/bin/tar
- 执行权限:所有用户
- 功能描述:打包与解打包文件
命令格式: 打包:tar -c [选项] [-f 包文件名] 源文件或目录解打包:tar -x [选项] -f 包文件名
- 选项:
-c:执行打包-x:执行解打包-z:支持压缩和解压缩 ".tar.gz" 格式文件-j:支持压缩和解压缩 ".tar.bz2" 格式文件-C 目录路径:指定解打包位置-f 包文件名: 指定打包文件名(.tar)或压缩包文件名(.tar.gz、.tar.bz2)。(执行打包时不写此选项,会默认把打包数据输出到屏幕)-v: 显示打包或解打包过程-t:测试,就是不解打包,只是查看包中有哪些文件
示例:
#=======================".tar"格式=========================
#打包不会压缩
[root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
#解打包到当前目录
[root@localhost ~]# tar -xvf anaconda-ks.cfg.tar
#解打包到指定目录
[root@localhost ~]# tar -xvf anaconda-ks.cfg.tar -C /testdir/
#=====================".tar.gz"格式=====================
#把/tmp/目录直接打包并压缩为".tar.gz"格式
[root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/
#解压缩并解打包".tar.gz"格式文件
[root@localhost ~]# tar -zxvf tmp.tar.gz
#=====================".tar.bz2"格式=====================
#把/tmp/目录直接打包并压缩为".tar.bz2"格式
[root@localhost ~]# tar -jcvf tmp.tar.gz /tmp/
#解压缩并解打包".tar.bz2"格式文件
[root@localhost ~]# tar -jxvf tmp.tar.gz