linux中压缩文件的各种命令有什么区别?

linux中压缩文件的各种命令有什么区别?

Linux 中压缩文件的命令有哪些,它们之间有什么区别?(例如:tar、gzip、rar)。
我正在使用 Linux Mint 11 并编写一个用于压缩文件的脚本。我需要:

    1. 支持密码加密(和解密)
    2. 支持文件分割
    3. 支持压缩级别

我可以在 Linux Mint 11(最终是 14)中使用哪种类型的压缩并且最适合我?

答案1

首先,一些命令用于制作档案- 即包含其他文件的文件,通常具有目录结构、所有权、权限和日期。其中最常见的是ar(创建库时使用)、tar(TapeARchive)和cpio(CoPyInOut)。

然后我们有一些命令用于压缩文件 - 即减少文件占用的磁盘空间。也可以对档案进行压缩。最常见的压缩程序是、、、gzip...以及两个较旧的程序和。bzip2xz7zipcompresscompact

这非常符合“Unix 哲学”,其中每个命令只做一件事(但做得很好)......这里,任何一个创建档案或者压缩文件 - 但不能同时压缩。当然,一个命令可以调用另一个命令,就像tar可以调用gzip或 一样bzip2

对于 Windows 来说,更常见的是制作将相关任务组合在一起的程序 - 或者更确切地说,对于用户看似相关的任务……例如制作和存档并压缩它 - 尽管这些是非常不同的任务。因此,我们在 Unix/Linux 下也有一些工具来处理 - 有时创建 - 此类档案。 ziprararj此类档案的示例,它们或多或少在 Linux 下受支持。它们通常同时进行压缩和存档(例如,zip首先压缩文件,然后对压缩文件进行存档)。

rarzip我所知,是否支持某种“加密”和密码,但这些都相当糟糕。您可能最好(以及更正确的 Unix 方式)使用单独的工具来加密和/或密码保护文件 - 也许gnupgtruecrypt

至少ziprartar支持创建多个部分的档案。但是,另一种可接受的“Unix 方式”是使用split未压缩的档案(tar 或 cpio)并分别压缩每个部分,或者使用压缩(例如使用 bzip2)文件 - 然后使用cat合并各部分。拆分压缩档案可能是最好的选择,因为重新合并后,压缩程序(例如 bzip2)会检测到任何错误。虽然单独压缩每个部分,但如果某一部分损坏,可以确保其他部分(及其大部分文件)可以恢复。

答案2

总体而言,bzip 的压缩效果优于 (g)zip,而 7zip 优于 bzip。Tar 用于将多个文件打包成一个大文件,本身不压缩。它通常与压缩工具一起使用。据我所知,所有格式都可以处理加密、分割和压缩级别,但并非所有工具都可以使用这些选项。

这将进行 tar 和压缩。我不知道具体顺序,但我认为文件首先被压缩,然后添加到存档中。原始文件保留在原处。

tar -czvf test.tgz test

另一个选项是 gzip,但这只适用于单个文件

gzip test

这将压缩文件并将其添加到新存档中。完成所有操作后,我相信测试文件已被删除。

相关内容