十八、压缩打包
linux 下的压缩命令有 tar、gzip、gunzip、bzip2、bunzip2、 compress、uncompress、zip、unzip、rar、unrar 等等
压缩后的扩展名有.tar、.gz、.tar.gz、. tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar 10 种。
对应关系如下:
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d 或者 gunzip 解压
*.tar.gz 和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d 或者用 bunzip2 解压
*.tar.bz2 用 tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用 tar –xZf 解压
*.rar 用 unrar e 解压
*.zip 用 unzip 解压
在介绍压缩文件之前呢,首先要弄清两个概念:打包和压缩。
打包是指将一大堆文件或目录什么的变成一个总的文件
压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?
其实这源于 Linux 中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助其它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。
Gzip/zcat
Bzip2/bzcat
Tar
Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以.tar 结尾的。
生成 tar 包后,就可以用其它的程序来进行压缩了,tar 命令的选项有很多(用 man tar 可以查看到),但常用的就那么几个选项,下面来举例说明一下:
复制代码
# 将所有.jpg 的文件打成一个名为 all.tar 的包
tar -cf all.tar *.jpg # -c 是表示产生新的包,-f 指定包的文件名。
# 将所有.gif 的文件增加到 all.tar 的包里面去
tar -rf all.tar *.gif # -r 是表示增加文件的意思。
# 更新原来 tar 包 all.tar 中 logo.gif 文件
tar -uf all.tar logo.gif # -u 是表示更新文件的意思。
# 列出 all.tar 包中所有文件
tar -tf all.tar # -t 是列出文件的意思
# 解出 all.tar 包中所有文件
tar -xf all.tar # -t 是解开的意思
1) tar 调用 gzip
gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序是
gunzip。tar 中使用-z 这个参数来调用 gzip。下面来举例说明一下:
# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg 的文件打成一个 tar 包,并且将其用 gzip 压缩,生成一个
gzip 压缩过的包,包名为 all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
复制代码
gzip、bzip2
为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能。这就是 tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。
tar 调用 bzip2
bzip2 是一个压缩能力更强的压缩程序,.bz2 结尾的文件就是 bzip2 压缩的结果。与 bzip2 相对的解压程序是 bunzip2。tar 中使用-j 这个参数来调用 gzip。下面来举例说明一下:
# 将所有.jpg 的文件打成一个 tar 包并且将其用 bzip2 压缩,生成一个bzip2 压缩过的包,包名为 all.tar.bz2
tar -cjf all.tar.bz2 *.jpg
# 这条命令是将上面产生的包解开
tar -xjf all.tar.bz2
下面对于 tar 系列的压缩文件作一个小结:
对于.tar 结尾的文件tar -xf all.tar
对于.gz 结尾的文件
gzip -d all.gz
gunzip all.gz
对于.tgz 或.tar.gz 结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
对于.bz2 结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
对于 tar.bz2 结尾的文件tar -xjf all.tar.bz2
对于.Z 结尾的文件uncompress all.Z
对于.tar.Z 结尾的文件tar -xZf all.tar.z
Cpio
相关知识点链接
Linux 命令大全(一)——常用命令
Linux 命令大全(二)——磁盘管理
Linux 命令大全(三)——用户管理
Linux 命令大全(四)——文件权限
Linux 命令大全(五)——目录结构
Linux 命令大全(六)——软件安装
Linux 命令大全(七)——时间管理
Linux 命令大全(八)——启动引导
Linux 命令大全(九)——运行级别
Linux 命令大全(十)——进程管理
Linux 命令大全(十一)——资源监控
Linux 命令大全(十二)——系统服务
Linux 命令大全(十三)——环境管理
Linux 命令大全(十四)——网络管理
Linux 命令大全(十五)——配置文件
Linux 命令大全(十六)——计划任务
Linux 命令大全(十七)——VI/VIM编辑器
Linux 命令大全(十八)——压缩打包
Linux 命令大全(十九)——性能优化及常见问题