![linux中压缩文件的各种命令有什么区别?](https://linux22.com/image/1362086/linux%E4%B8%AD%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%84%E7%A7%8D%E5%91%BD%E4%BB%A4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
Linux 中压缩文件的命令有哪些,它们之间有什么区别?(例如:tar、gzip、rar)。
我正在使用 Linux Mint 11 并编写一个用于压缩文件的脚本。我需要:
-
1. 支持密码加密(和解密)
2. 支持文件分割
3. 支持压缩级别
我可以在 Linux Mint 11(最终是 14)中使用哪种类型的压缩并且最适合我?
答案1
首先,一些命令用于制作档案- 即包含其他文件的文件,通常具有目录结构、所有权、权限和日期。其中最常见的是ar
(创建库时使用)、tar
(TapeARchive)和cpio
(CoPyInOut)。
然后我们有一些命令用于压缩文件 - 即减少文件占用的磁盘空间。也可以对档案进行压缩。最常见的压缩程序是、、、gzip
...以及两个较旧的程序和。bzip2
xz
7zip
compress
compact
这非常符合“Unix 哲学”,其中每个命令只做一件事(但做得很好)......这里,任何一个创建档案或者压缩文件 - 但不能同时压缩。当然,一个命令可以调用另一个命令,就像tar
可以调用gzip
或 一样bzip2
。
对于 Windows 来说,更常见的是制作将相关任务组合在一起的程序 - 或者更确切地说,对于用户看似相关的任务……例如制作和存档并压缩它 - 尽管这些是非常不同的任务。因此,我们在 Unix/Linux 下也有一些工具来处理 - 有时创建 - 此类档案。 zip
和rar
是arj
此类档案的示例,它们或多或少在 Linux 下受支持。它们通常同时进行压缩和存档(例如,zip
首先压缩文件,然后对压缩文件进行存档)。
rar
据zip
我所知,是否支持某种“加密”和密码,但这些都相当糟糕。您可能最好(以及更正确的 Unix 方式)使用单独的工具来加密和/或密码保护文件 - 也许gnupg
或truecrypt
?
至少zip
,rar
和tar
支持创建多个部分的档案。但是,另一种可接受的“Unix 方式”是使用split
未压缩的档案(tar 或 cpio)并分别压缩每个部分,或者使用压缩(例如使用 bzip2)文件 - 然后使用cat
合并各部分。拆分压缩档案可能是最好的选择,因为重新合并后,压缩程序(例如 bzip2)会检测到任何错误。虽然单独压缩每个部分,但如果某一部分损坏,可以确保其他部分(及其大部分文件)可以恢复。
答案2
总体而言,bzip 的压缩效果优于 (g)zip,而 7zip 优于 bzip。Tar 用于将多个文件打包成一个大文件,本身不压缩。它通常与压缩工具一起使用。据我所知,所有格式都可以处理加密、分割和压缩级别,但并非所有工具都可以使用这些选项。
这将进行 tar 和压缩。我不知道具体顺序,但我认为文件首先被压缩,然后添加到存档中。原始文件保留在原处。
tar -czvf test.tgz test
另一个选项是 gzip,但这只适用于单个文件
gzip test
这将压缩文件并将其添加到新存档中。完成所有操作后,我相信测试文件已被删除。