对Linux上的各类型压缩格式的一个总结
我使用的环境是64位的 Red Hat Enterprise Linux Server release 6.4 (Santiago)
1.compress与*.Z文件
compress程序的作用是:Compress reduces the size of the named files using adaptive Lempel-Ziv coding
即:使用自适应的Lempel-Ziv编码压缩文件
如果没有安装compress,输入compress命令后会提示错误:
-bash: compress: command not found
运行下面的命令可以进行安装:
yum install ncompress
(Arch: x86_64;Version: 4.2.4-54.el6_2.1)
将文件test压缩到test.Z
compress test
运行该命令后,test文件消失,新出现文件test.Z。解压缩此文件,则输入下面两个命令之一就可以了
compress -d test.Z uncompress test.Z
compress命令无法对整目录进行压缩,只能压缩一个目录中的所有文件进行递归式压缩与解压缩
compress -r testdir uncompress -r testdir
2.gzip与*.gz文件
在man中对gzip的描述是:gzip reduces the size of the named files using Lempel-Ziv coding(LZ77)
亦即使用Lempel-Zip编码(LZ77)对文件进行压缩
将文件test压缩为test.7gz,输入下面这个命令
gzip test
查看压缩后的文件内容,可以用zcat直接查看,如:
echo "abcd" > word gzip word zcat word
可以看到输出“abcd”
gunzip用于解压缩gz文件,解压缩之前的test.gz,可以使用如下命令:
gunzip test.gz
对目录中的文件递归式压缩和解压缩,需要添加参数 -r
gzip -r test gunzip -r test.gz
3.bzip2与*.bz2文件
man中对bzip2的说明是:bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding
即使用Burrows-Wheeler块排序文本压缩算法和Huffman编码实现压缩文件
通过bzip2压缩文件的命令(二选一即可)
bzip2 test bzip2 -z test
通过bzip2解压缩文件的命令(二选一即可)
bunzip2 test.bz2 bzip2 -d test.bz2
查看压缩后的文件,使用命令bzcat即可,用法与zcat类似,即“bzcat 文件名”
4.tar与*.tar、*.tar.gz、*tar.bz2、*.tar.xz文件
tar命令可以用于压缩目录,如有目录testdir,将其压缩到testdir.tar
tar -cvf testdir.tar testdir
-c:建立一个压缩档案
-v:压缩过程中显示档案
-f:使用档名(f必须作为最后一个参数,后面直接跟*.tar)
压缩后,原来的test不消失。如果要解压testdir.tar,输入命令:
tar -xvf testdir.tar
根据tar命令的参数,可以将目录testdir分别压缩成tar.gz格式、tar.bz2格式和tar.xz格式
1)tar.gz格式的压缩与解压缩(-z filter the achive through gzip)
tar -zcvf testdir.tar.gz testdir tar -zxvf testdir.tar.gz
2)tar.bz2格式的压缩与解压缩(-j filter the archive through bzip2)
tar -jcvf testdir.tar.bz2 testdir tar -jxvf testdir.tar.bz2
3)tar.xz格式的压缩与解压缩(-J filter the archive through xz)
tar -Jcvf testdir.tar.xz testdir tar -Jxvf testdir.tar.xz
5.zip与*.zip文件
将目录testdir压缩到文件testdir.zip中,可用如下命令实现:
zip -r testdir.zip testdir
查看解压后zip文件中的内容:
unzip -v testdir.zip
将testdir.zip解压到当前目录(下面两个命令选一个运行即可)
unzip -o testdir.zip unzip -o -d . testdir.zip
-o意为如果之前有重名文件,则覆盖它:overwrite existing files without prompting (dangerous option)
-d是压缩到的目录:an optional directory to which to extract files
现假设有一个文件word。向testdir.zip中添加文件word,可以用命令:(运行完毕后原来的word会消失)
zip -m testdir.zip word
从testdir.zip中删除文件word,可以用命令:(word被删除后就不存在了)
zip -d testdir.zip word
6.rar与*.rar
rar程序需要手动安装后才能使用
我从这个地址上下载了一个:http://www.rarlab.com/download.htm
下载的是:RAR 5.20 beta 4 for Linux x64
下载下来的文件名为:rarlinux-x64-5.2.b4.tar.gz;大小1.08MB
保存到自己的Linux系统后,解压缩这个文件
tar rarlinux-x64-5.2.b4.tar.gz
可以看到文件夹rar,进入后输入命令
make -f makefile
可以看到makefile调用了如下几个命令
mkdir -p /usr/local/bin mkdir -p /usr/local/lib cp rar unrar /usr/local/bin cp rarfiles.lst /etc cp default.sfx /usr/local/lib
安装完毕!这个时候直接输入rar就可以查看rar的各个参数及意义了
将testdir压缩到testdir.rar,使用命令:
rar a testdir.rar testdir
将testdir.rar解压缩到当前目录,使用命令(二选一):
rar x testdir.rar unrar e testdir.rar
7.7za和*.7z文件
7za也需要下载后手动安装
下载地址:http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/
下载文件:p7zip_9.20.1_x86_linux_bin.tar.bz2
下载到本地的Linux系统后,解压缩:
tar xjf p7zip_9.20.1_x86_linux_bin.tar.bz2
解压后可以看到目录 p7zip_9.20.1。用root权限调用里面的 install.sh 脚本
安装完毕!这个时候直接输入7za或命令“man 7za”就可以查看7za的各个参数及意义了
将目录testdir压缩到testdir.7z:
7za a -t7z testdir.7z testdir
各部分意义
1)a 添加文件
2)-t 压缩类型 这里选了7z(这个也是默认值)
3)testdir.7z 压缩后的文件名
4)testdir 被压缩的文件(可以是一个或多个的文件、目录)
将testdir.7z中的内容解压缩到当前文件夹:
7za x testdir.7z -r -o./
1)-r 递归解压缩所有子文件夹
2)-o 解压到指定目录(后面直接跟路径,没有空格)
8.一个用于解压缩文件的脚本
如果你觉得Linux中各种各样的压缩文件解压命令都不一样很麻烦,下面这个傻瓜脚本应该会有所帮助:
脚本:extract.sh
#!/bin/sh if [ "$#" -ne 1 ]; then echo "输入参数:被解压缩文件" exit 0 fi if [ -f "$1" ]; then case "$1" in *.tar ) tar xf $1 ;; *.tar.bz2 | *.tbz2 ) tar xjf $1 ;; *.tar.gz | *.tgz ) tar xzf $1 ;; *.bz2 ) bunzip2 $1 ;; *.gz ) gunzip $1 ;; *.zip ) unzip $1 ;; *.rar ) unrar e $1 ;; *.Z ) uncompress $1 ;; *.7z ) 7z x $1 ;; * ) echo 类型未识别 ;; esac else echo "$1":文件不存在或无权限 fi exit 0
END
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。