作者:Jacek Artymiak
一些免费和实用工具的评价
要使用本指南,请阅读作者的介绍,然后使用索引跳至指南中解释您所需工具的那一节。如果愿意,也可以阅读所有内容!我们在每一节的后面提供了参考资料的链接,并在本指南的结尾处提供了一个主要列表。
文件的压缩和解压缩是计算历史上最有用的创造之一,但缺乏可移植性和开放工具是阻碍它发挥其应有作用的最主要的一个障碍。只要我们是与其他使用类似 Unix 操作系统的用户交换文件,就可以使用例如 compress、gzip 和 bzip2 这样的可移植工具(如需链接,请参阅参考资料)。但世界上其他人使用的是各种各样的专用软件 -- 甚至专用压缩算法 -- 拥有者可能永远也不会将它们公之于众。
这种事态发展下去会很危险。想象一下,将来我们可能无法对档案的重要部分译码,原因是我们创建它们时使用的是专用工具和算法,而那些工具运行所在的操作系统和硬件已逐渐过时,消失不见。这就是为什么我们应该使用开放源码压缩工具,或者至少使用免费和有完善记载算法的商业压缩工具的原因。(只是要记住避免使用任何特殊的增强。)
本文是有关在 Linux 操作系统上使用 .arc、.arj、.lzh (.lha)、.rar、.sit、.zip 和 .zoo 文件的指南。我选择讨论这些特殊的格式是因为三种最流行的操作系统 (MS-DOS、微软 Windows 和 Mac OS)的用户最常使用它们。我之所以写这篇指南是希望引导大家快速找出正确的工具,而不是详细地从技术上讨论文件压缩技术。
最后,我想简短说明一下自抽取文件。这样的档案往往位于包含压缩格式数据的现实程序中。执行它们时,它们会解包,并将存储在程序主体内的数据复制到您指定的任何驱动器上。唯一的问题是它们无法在 Linux 上使用,没有工具可以抽取它们。在这种情况下,需要让创建档案的那个人将它作为一个一般档案压缩。
目前先说到这里。我希望这个指南能对您有所帮助,并期待着您的意见和建议。
索引
.arc
.arj
.lzh (.lha)
.rar
.sit
.zip
.zoo
--------------------------------------------------------------------------------
.arc
带有 .arc 扩展名的文件相对来说比较少见。如果您偶然碰到一个,基本上可以认定它是使用旧的 MS-DOS SAE ARC 或 PKware PKARC 归档实用程序创建的。这种形式在 Linux 上的支持性不是太好,并很难指望在 Linux 机器上对这些文件解压缩。如果需要创建 .arc 文件,尝试在 DOSEMU 或 VMware 下运行原始 SAE ARC 或 PKware PKARC(在携带 MS-DOS 实用程序的 FTP 服务器上查找它们)。
要解压缩 .arc 文件,使用 Aladdin Expander for Linux。写这篇文章的时候,Aladdin Expander 可以为公众 Beta 测试目的免费获得;它是否继续免费还是个未知问题。
要解压缩 .arc 文件,输入 unstuff file.arc。-d 是个有用的选项,指定解压缩文件的目标位置。例如:unstuff -d=./home/james/incoming file.arc。
注:要了解更多有关 Aladdin Expander for Linux 的详细信息,请阅读有关 .sit 文件的那一节。
VMware:http://www.vmware.com
DOSEMU:http://www.dosemu.org
Aladdin 系统: http://www.aladdinsys.com/expander/expander_linux_login.html
返回到索引
--------------------------------------------------------------------------------
.arj
带有 .arj 扩展名的文件是使用 ARJ Software 用于 MS-DOS 和 Windows 的 ARJ 实用程序创建的。因为 ARJ 是一种不能免费获得源代码的共享件程序,所以在 Linux 平台上几乎不存在与其功能匹配的工具,这使得 .arj 文件使用起来相当困难。
对于 ARJ 文件,只要能成功地解压缩就已经够幸运的了。不可能在 Linux 上进行 .arj 形式的压缩,因为没有用于 Linux 的、生成这种文件的本机压缩工具。(可以尝试在 DOSEMU 或 VMware 下运行原始 ARJ 软件,但这根本算不上是一种易于使用的解决方案)。
要解压缩 .arj 文件,使用 unarj 实用程序。它比 ARJ 慢,能力也不如 ARJ,但至少它能够顺利地抽取大多数 .arj 文件。它只能将文件抽取到当前的工作目录、列出档案内容,或者测试档案。
要查看简短的帮助页面,输入 unarj;如需较详细的描述,请参阅 unarj.doc 文件,通常它位于 /usr/doc/unarj-2.43 目录中。
尽管在哪里解压缩 .arj 文件是由您来选择的,但为避免把主工作目录混淆,通常应该在主目录中创建一个临时子目录,将当前工作目录更改到新目录,将压缩的文件移到新目录中,然后使用 unarj e archive.arj 来解压缩有问题的文件。
用于 Linux 的 unarj 只能一次抽取所有文件;不能从档案中抽取个别文件。至少如果文件已存在于当前的工作目录中,即使在档案中找到具有相同名称的文件,您也不会覆盖其内容。另外, unarj 不支持空目录或自抽取档案;后者是 MS-DOS/Windows 程序,它们无法在 Linux 上运行,但可以在 DOSEMU 或 VMware 下运行。
以下是其它一些 unarj 选项:
unarj archive.arj 或 unarj l archive.arj -- 列出档案内容
unarj t archive.arj -- 测试档案
unarj x archive.arj -- 带路径名抽取文件
请注意,unarj 选项不是以减号 (-) 开头的。
如果 unarj 解压缩文件失败,尝试使用 Aladdin Expander for Linux(有关详细信息,请参阅有关 .sit 的那一节)。您还可以让创建档案的人使用其它工具(例如可用于 MS-DOS 的免费 gzip)来压缩它。您可能还需要一个 simple.arj 档案,在其中要避免使用所有高级 ARJ 选项,例如卷、将档案分成几个小部分、以及自抽取。
为什么不使用自抽取 ARJ 档案呢?这些是不能在 Linux 下运行的 MS-DOS 样式的可执行文件;它们使用不同的系统库,它们的内部格式也与 Linux 所需的二进制可执行文件的格式不同。可能可以在 DOSEMU 或 VMware 下运行自抽取 ARJ 档案。
以 ARJ 或 JAR 形式进行的压缩仍然不能在 Linux 上使用,按照 ARJ Software 的 FAQ 页面的说法,我们不应该等待 Linux 移植。如果您知道有任何 Linux 工具可以解压缩 .jar 文件,请务必告诉我。
可以从 ARJ Software 的站点或携带您所需 Linux 发行版的 FTP 服务器上下载 unarj 源码。另外,unarj 通常是基本 Linux 发行版的一部分,因此可以在主要分发 CD-ROM 上找到它。如需到所有 Linux 发行版的链接的列表,请参阅 Linux 发行版页面。
ARJ 软件:http://www.arjsoft.com
ARJ 的 FAQ 页面:http://www.arjsoft.com/faq.htm
ARJ 的下载页面:http://www.arjsoft.com/files.htm
DOSEMU:http://www.dosemu.org
VMware:http://www.vmware.com
Aladdin Expander: http://www.aladdinsys.com/expander/expander_linux_login.html
gzip:http://www.gnu.org/software/gzip/gzip.html
Linux 发行版页面:http://www.linux.org/dist/index.html
返回到索引
--------------------------------------------------------------------------------
.lzh (.lha)
带有 .lzh 或 .lha 扩展名的文件使用的是 LHa、LHarc 或 LHx 压缩实用程序进行的压缩。这些实用程序是由 Y. Tagawa、H. Yoshizaki、Momozou 和 Masaru Oki 开发的。这些实用程序已移植到许多操作系统,使用它们所创建的文件也具有相当的可移植性。Mats Andersson 执行了 Linux 移植。
与 gzip 不同,lha 实用程序执行多个文件的压缩。要压缩单个文件,输入 lha a archive file。lha 创建的档案带有 .lzh 扩展名。如果 archive.lzh 已在当前的工作目录中存在,那么您让 lha 压缩的文件就将添加到这一现有的档案中。archive.lzh 先前的内容仍被保留,除非它已包含带有相同名称的文件,在这种情况下,旧文件将被新文件取代。该操作是 盲目的,意味着它不检查文件的时间戳记;要确保只有带有更新时间戳记的文件才能替换档案中已保存的较旧的文件,这时使用 u 选项而不是 a 选项(例如,lha u archive file)。
当收到 .lzh 文件的人抱怨无法解压缩档案时,尝试使用 lha ag archive file 或 lha ao archive file。g 和 o 选项分别指示 lha 使用常规或与 lha 兼容的归档方法。如果您只更新现有的档案,使用 u 而不是 a。
归档多个文件和归档单个文件一样容易:使用通配符(例如, lha a archive files*)或输入存储文件所在的顶级目录(例如,lha a archive directory)。所有文件和子目录都将自动存储在档案中。文件替换规则和 u 选项对多个文件和单个文件所起的作用是一样的。通配符使用的语法和您在常用的 shell 中所使用的语法相同。
以下是其它一些 lha 选项:
l -- 列出档案内容(例如,lha l archive.lzh)
v -- 列出详细格式的档案内容(例如,lha v archive.lzh)
t -- 测试档案的完整性(例如,lha t archive.lzh)
请注意,lha 选项不必以负号 (-) 开头,它们之间也不应该有空格。如需其它选项的列表,请输入 lha。
.lzh 和 .lha 文件的解压缩相当容易:只需输入 lha e archive.lha。如果希