Linux下打包压缩软件一览
目前 Linux 下最常见的压缩包格式自然非 .tar.gz 莫属,但由于 bzip2 强大的压缩比率,目前 . tar.bz2 愈发有取代之势。还有单纯的 .tar 格式也很常见。它们目前的操作都主要是由 tar 程序 配合 gzip/bzip2 来完成的。除此之外, .zip 和 .rar 由于在Windows平台下的流行,也会有少量 见到。另外有时翻一些老程序还会见到扩展名为 .Z 的老牌压缩程序 compress 的身影。
另外本文结尾也会捎带提一下 .rpm 格式,它虽然不是压缩包格式,但它可是 Redhat 下的红人。还 有 .deb 格式,据说是 Debian (也是类似于 Redhat 的一个 Linux 的分发版)下类似与 .rpm 的软 件分发包,由于我至今也没用过 Debian Linux,所以无缘一见,请各位高手补充。
[打包程序TAR]
命令选项
-A 合并tar文件
-c 创建
-d 比较
–delete 删除
-r 添加文件到tar文件后面
-t 察看tar文件中包含了哪些文件
-u 更新
-x 解开
常用操作
tar cvf data.tar * 将所有文件包装成data.tar
tar zcvf data.tar.gz * 同上,并用gzip压缩
tar jcvf data.tar.gz * 同上,并用bzip2压缩
tar tvf data.tar 列出data.tar中文件
tar xvf data.tar 解开data.tar
tar zxvf data.tar.gz 解开用gzip压缩过的data.tar.gz
tar jxvf data.tar.bz2 解开用bzip2压缩过的data.tar.bz2
其他选项
-v 显示详细信息
-f 指定tar文件名 (否则使用缺省的设备 /dev/rmt0)
打包与解包
–atime-preserve 将解开后的文件以原来的文件时间保存
–checkpoint 当读取tar文件时显示目录名
-h 保存符号链接(symlink)所链接的文件,而不是符号链接本身
更新与删除
–delete 删除
-r 添加文件到tar文件后面
-u 更新
-k 解开后不覆盖已有文件
–remove-files 将文件移入tar包内
调用压缩命令
-z 使用gzip
-Z 使用compress
-j 使用bzip2
-use-compress-program PROG
使用指定压缩程序PROG (前提是该程序必须支持 -d 选项)
[zip & unzip - 扩展名 .zip]
压缩 zip myfiles *.txt (压缩包名后面不用加.zip)
解压缩 unzip myfiles.zip
*zip缺省压缩不包括子目录下的文件,需要指定 -r 参数
zip参数
-r 包含子目录下的文件
-j 不保存目录结构
-f 只更新压缩包已有中的文件
-u 更新压缩包中的文件(修改过的和新的)
unzip
-d DIR 创建DIR, 并将文件解压缩到DIR中
-j 不保存目录结构
-f 仅更新已有文件, 不创建新文件
-u 更新文件, 没有则创建
[gzip & gunzip - 扩展名 .gz 或 .tgz(同.tar.gz)]
压缩 gzip data.txt
解压缩 gzip -d data.txt.gz
gunzip data.txt.gz
[bzip2, bunzip2 & bzip2recover - 扩展名 .bz2]
压缩 bzip2 data.txt
解压缩 bunzip2 data.txt.bz2
修复 bzip2recover data.txt.bz2
*bunzip2其实是bzip2的符号链接
bzip选项
-k 保留原始文件
解压缩 .tar.bz2 除了使用
tar jxvf test.tar.bz2
之外, 还可以使用下面的方法
bzip2 -dc test.tar.bz2 | tar xvf -
[compress & uncompress - 扩展名 .Z]
压缩 compress a.txt
解压缩 uncompress a.txt.Z
*由于压缩比不高,现在已经很少见,但可以用gunzip来解压
[rar & unrar - 扩展名 .rar]
请到 http://www.rarlab.com/download.htm 下载 rar for linux。
压缩 rar a data data.txt
解压缩 rar x data.rar (根据压缩包中的路径确定解压目录)
rar e data.rar (解压缩到当前目录下)
*rar缺省压缩命令已包括子目录下的文件
请看我做的一个压缩比例测试,压缩内容为若干PHP程序代码和少量图像文件
-rw-r–r– 1 root root 1423360 Jan 24 20:11 test.tar
-rw-r–r– 1 root root 478614 Jan 24 20:17 test.zip
-rw-r–r– 1 root root 454104 Jan 24 20:13 test.rar
-rw-r–r– 1 root root 411159 Jan 24 20:13 test.tar.zip
-rw-r–r– 1 root root 411029 Jan 24 20:11 test.tar.gz
-rw-r–r– 1 root root 379945 Jan 24 20:11 test.tar.bz2
-rw-r–r– 1 root root 350023 Jan 24 20:15 test.tar.rar
[RPM基本功能]
安装[i] 删除[e] 升级[U] 更新[F] 查询[q] 验证[V]
安装: rpm -ivh foobar-1.0.i386.rpm
(i: 安装 v: 详细信息 h: 显示#组成的进度条 –percent 选项也可替代)
–replacepkgs 重新安装软件包
–replacefiles 允许覆盖原有文件
–nodeps 不检查相关性
删除: rpm -e foobar
(并不包括已经修改过的配置文件)
–nodeps 不检查相关性
升级: rpm -Uvh foobar-1.0.i386.rpm
–oldpackage 允许“升级”到旧版本
更新: rpm -Fvh foobar-1.0.i386.rpm
(若原来存在旧版的软件则升级之,若原来不存在旧版软件则跳过)
查询: rpm -q foobar
Package Specification Options(软件包指定参数)
-a 查询目前已安装的所有软件包
-f 查询包含的软件包
-p 指定要查询的
Infomation Selection Options(信息选择参数)
-i 显示包详细信息
-l 显示文件列表 (-v 显示更详细信息)
-s 显示文件状态
-d 显示包中被标示为 documentation(文档) 的文件列表
-c 显示包中被标示为 configuration(配置) 的文件列表
验证: rpm -V foobar
若无输出表示正常,否则请参考错误代码