没法再详细的说说Linux压缩与归档命令(下-2)

6 7-Zip7z文件压缩与解密

7-Zip7-Zip官方网站:http://www.7-zip.org/)是一个开源的数据压缩程序,主要用在Windows、类Unix操作系统。7-Zip主体在GNU LGPL下发布,加密部份使用AES的代码,使用BSD License发布,解压RAR部分使用RAR特定的许可协议。7-Zip默认的格式是其自行开发的7z格式,扩展名为“.7z”。7z格式包含多种算法,最常使用的就是Bzip2以及Igor Pavlov开发的LZMALZMA算法比起其他常见的传统压缩算法,比如ZipRAR来说相对较新,压缩率也比较高。7z格式本地的使用Unicode来存储文件名称,可以避免不同系统间压缩解压乱码的问题。7-Zip支持众多的压缩/未压缩的文件格式,比如ZIPCABRARARJZgzipbzip2LLHAtarcpiorpm。从4.42版开始支持CD/DVD镜像格式ISO,另外因为授权问题,不再支持ACE格式。

7-Zip也是目前最普及的开放源代码压缩程序。在RHEL 5.x中并没有提供7-Zip文件的压缩与解压功能,所在必须先使用安装7-Zip工具,具体操作步骤如下。

l 下载7-Zip for Linux

[root@srv ~]# wget ftp://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/p7zip-4.61-1.el5.rf.i386.rpm

l 安装7-Zip工具。

[root@srv ~]# rpm -ivh /p7zip-4.61-1.el5.rf.i386.rpm

Linux中使用7za命令压缩/解压文件“.7z”文件,该命令语法如下。

7za <命令> [<选项>...] 压缩文件 [<参数变量>...]

常用选项:

l 压缩文件:需要压缩或解压的文件。

l 命令:执行7za命令时所作的操作。

l 选项:执行7za命令时操作的选项。

<命令>包括以下几个:

l a:添加文件到压缩文件。

l d:从压缩文件删除文件。

l e:从压缩文件中释放文件到当前目录中,或者通过“-o”选项指定目录。该命令会将所有被释放的文件放置到一个文件夹。如果想使用完整路径释放文件,您必须使用 x”命令。7-Zip在覆盖现有文件时会提示用户如何进行下一步操作,除非用户自定义了“-y”选项。7-Zip所支持的回应包括:“y”是、“n”否、“a”将所有的询问以YES来对待、“s”将所有的询问以NO来对待、“q”退出程序。

l l:列出压缩文件内容。

l t:测试压缩文件文件的完整性。

l u在压缩文件中使用较新的文件替换掉较旧的文件。

l x:在当前目录中,使用完整路径从压缩档案中释放文件,或者通过“-o”选项指定目录。

<选项>包括以下几个:

l --:在命令行中使“--”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件。

l -ai [<r[-|0]>] <@{listfile}|!{wildcard}>:指定附加文件,包括压缩档案文件名及通配符。此选项可同时附加多个类型。“<r[-|0]>”指定通配符及文件名,该选项在这里必须使用。如果此选项未被指定,那么将自动使用递归(有关递归参见“-r”选项)。<@{listfile} | !{wildcard}>指定要处理的文件的文件名、通配符或文件列表。{listfile}指定文件列表的文件名;{wildcard}指定通配符或文件名。

l -ao[a|s|u]:指定在释放期间如何覆盖硬盘上现有的同名文件。“-aoa”表示直接覆盖现有文件而没有任何提示;“-aos”表示跳过现有文件,其不会被覆盖;“-aou”表示如果相同文件名的文件以存在,将自动重命名被释放的文件,比如“test.docx”将被自动重命名为“test_1.docx”;“-aot”表示如果相同文件名的文件以存在,将自动重命名现有的文件。

l -ax [<r[-|0]>] <@{listfile}|!{wildcard}>:排除文件名。

l -i [<r[-|0]>] <@{listfile}|!{wildcard}>:指定附加文件或一类文件。

l -o:指定释放文件的输出文件夹,该选项只能和释放命令配合使用。

l -p:设置密码。

l -r[-|0]:把命令行中的通配符及文件名以指定的方法对待。“-r”表示开启递归子目录,对于eltx这些操作命令,会默认使用此选项;“-r-”表示关闭递归子目录,对于adu等所有需扫描磁盘文件的命令,会默认使用此选项;“-r0”表示开启递归子目录。但只应用于通配符。

l -t{压缩类型}:指定压缩文件格式,可以是:zip7zrarcabgzipbzip2tar,默认值是7z格式。

l -v{大小}[b|k|m|g]:指定分卷大小,可以使用字节、KBMBGB(1 GB = 1024 MB)。可以同时指定多个“-v”选项。

l -w:为文件压缩设置临时的工作目录。

l -x [<r[-|0]>] <@{listfile}|!{wildcard}>:指定某一文件或某一类文件从操作中排除。

l -y:使 7-Zip执行命令时的大多数提示选择同意。

在“-i”、“-ai”、“-x”、“-ax”都可以通过{listfile}指定文件列表文件名;{wildcard}指定通配符或文件名。文件列表文件名可以对要操作的文件进行批量操作,在文件中的文件名必须用空格或另起一行隔开,如使用空格格开,每一个文件必须加引号,比如建立一个“lf.txt”的文件内容如下则表示要操作的文件为“/My doc”目录中所有扩展名为“docx”的文件和“/media”目录下所有扩展名为“mp3”的文件。7-Zip支持和Windows相类似的通配符:“*”表示任意个字符;“?”单个字符。

"/My doc/*.docx"

/media/*.mp3

下面看几个7-Zip命令的例子。

l 将“/boot”下所有内容以ZIP格式压缩为“bootbak.zip”文件。

[root@srv ~]# 7za a -tzip -r bootbak.zip /boot/*

l 将“/etc”下所有内容以7z格式压缩为“test.7z”文件,并对其进行分卷,第一个分卷为10MB;第二个为15MB,剩下全部为20 MB

[root@srv ~]# 7za a test.7z -r /etc -v10m -v15m -v20m

l 从压缩文件“bootbak.zip”中释放所有文件到当前目录。

[root@srv ~]# 7za x bootbak.zip

l 从压缩文件“bootbak.zip”中释放所有扩展名为“*.conf”的文件到“/root”目录。

[root@srv ~]# 7za x bootbak.zip -r -o/root *.conf

你可能感兴趣的:(linux,GZip,rar,tar,休闲)