Linux系统支持压缩类型有哪些? (linux支持的压缩类型)

Linux系统作为一种开源操作系统,因其高效稳定的性能,越来越受到人们的关注与喜爱。作为一个优秀的操作系统,Linux在应用程序、安全性能、文件管理、网络管理等方面都受到了广泛的认可,而Linux对文件压缩技术的支持也是其优秀特性之一。那么在Linux系统中,它支持的压缩类型有哪些呢?本文将为您一一解析。

一、tar压缩格式

tar是Linux系统中最常用的压缩类型之一,它是一个归档程序,可以将多个文件或目录打包为一个单独的文件,也可以支持压缩功能。tar格式压缩文件通常以“.tar”为扩展名。tar格式压缩文件的优点是不会对文件进行任何压缩,直接打包,因此不会损失文件的质量,而且多数架构都支持此格式。

二、tar.gz压缩格式

tar.gz是Linux系统中最常用的压缩类型之一,它是在tar的基础上进行gzip压缩的,也就是对tar格式文件进行压缩。tar.gz格式压缩文件通常以“.tar.gz”或“.tgz”为扩展名。tar.gz格式压缩文件的优点是文件大小通常较小,并且压缩比较高,而且多数架构都支持此格式。

三、tar.bz2压缩格式

tar.bz2也是Linux系统中常用的压缩格式之一,它是在tar的基础上进行bzip2压缩的。tar.bz2格式压缩文件通常以“.tar.bz2”为扩展名。tar.bz2格式压缩文件的优点是虽然比起tar.gz格式压缩文件压缩时间慢一些,但是会有更高的压缩比,因此在压缩大文件时,tar.bz2格式通常更为适合。

四、zip压缩格式

zip也是一种常见的压缩类型,它在Windows系统上是最常见的压缩格式之一。在Linux系统中也是一种常用的压缩格式之一。zip格式压缩文件通常以“.zip”为扩展名。zip格式压缩文件的优点是使用方便,大多数操作系统都支持此格式。但是zip格式压缩文件相对于tar.gz或tar.bz2格式压缩文件来说大小较大,压缩比也相对较低。

五、rar压缩格式

rar是一种典型的封闭式压缩格式,相比起tar.gz或tar.bz2格式,它的解压缩时间要慢一些,但是更好的压缩比使其在特定情况下更为适合。rar格式压缩文件通常以“.rar”为扩展名。但是出于商业利益考虑,rar在Linux系统中的兼容性不如其他格式,需要额外安装相应的软件才能正常使用。

综上所述,Linux系统支持的压缩类型有tar、tar.gz、tar.bz2、zip以及rar。不同的压缩格式在不同的场合下有不同的用途,因此在使用时需要根据不同需求选择合适的压缩格式。在相同的情况下,使用gzip和bzip2压缩文件的质量优于zip和rar,但是如果需要把压缩后的文件发送到不同的操作系统时,zip则更有优势。以此类推,所以在选择压缩格式时需要根据具体情况进行选择。

相关问题拓展阅读:

Linux:文件解压、复制和移动的若干坑

Linux下进行文件的解压、复制、移动应该是最常见的操作了。尤其是我们在项目中使用大量的数据集文件(比如机器学习)文件。然而使用这些命令时一不留神就会掉进坑里,这篇文章我们就来细数用Shell进行文件操作的这些坑。

Linux下压缩文件的常见扩展名包括 .gz , .tar , .tar.gz , .zip 等。这些压缩格式都能够跨平台(Windows/Mac/Linux)使用。下面我们以 .zip 文件为例子来讲解。我们已知一个文本文件压缩包 test.zip ,想把它解压,很简单,运行 unzip 命令即可:

如果我们想要将 test.txt 重新压缩呢?你可能情不自禁会执行 zip test.txt ,然后我们发现提示:

其实是传参数传错了,导致 zip 误把 test.txt 当成压缩后的文件名了,这当然不是合法的。我们看 zip 的参数构成:

是压缩后的 .zip 文件的路径, zipfile list 是待压缩的文件列表。于是,我们这样写即可成功压缩:

当然, zip 也支持将多个文件压缩:

此时我们发现再解压 test3.zip 会发现重新得到了两个原始文件:

zip 也支持对目录压缩困带,如我们尝试压缩 test 目录:

此时再解压 test4.zip 则会重新生成 test 目录:

不过, zip 是将输入的文件列表

分别

进汪芹芦行压缩的操作,即是对目录来进行压缩也是对目录内的所有文件one-by-one的操作。那我们需要将很多文件先打包成一个文件,然后再压缩呢?此时就要用到 tar 了。

很多人误解 tar 是个压缩命令,其实压缩命令是 gzip 、 xz 以及我们上文提到的 zip 这些。 tar 是个打包命令,只不过附带压缩与解压的功能。 tar 的选项多如牛毛,为了减轻大家的记忆负担,我们只介绍下面两个选项:

-c : 建立打包文件(可搭配 -v 将过程中打包的文件可视化);

-x :解包或解压缩的功能(可搭配 -C 在特定目录解压);

(其实还有表示通过gzip进行压缩/解压缩的 -z ,通过bzip2的支持进行压缩/解压缩的 -j ,通过xz的支持进行压缩解压缩的 -J 等,但我们这里统一用 .zip 示范,就省去这些参数了)

那么,我们只需要记住下面的命令即可:

压缩: tar -cv -f filename.zip 要被压缩的文件或目录名称

解压缩: tar -xv -f filename.zip -C 欲解压的目录(这个目录必须已经存在)

注意,压缩传参顺序是压缩后的.zip文件在前,压缩前的文件在后

,别搞错了。(让人联想到gcc编译器,不过 gcc 传参时规定是 -o output_file.out 的形式来指定输出的可执行文件,就回避了这个顺序问题)

比如,我们要将 test 文件夹(该文件夹下有首纳一个 test.txt 文件)压缩,可以运行如下命令:

然后将其解压到当前目录,可运行如下命令:

多个文件压缩:

然后将其解压到当前目录:

由上面所说,

zip / unzip 和 tar 都是压缩什么解压出来就是什么,原来是目录就是目录,原来没目录不会帮你自动生成一个目录

,但Linux或Mac系统的可视化压缩工具就不一样了(在Mac中被称为「归档实用工具」)。Mac中对目录压缩时压缩命令和 tar 命令是等效的,比如我们想用Mac自带的压缩工具压缩 test 文件夹:

会生成对应的归档文件:

再解压会得到同样的文件夹(会自动帮我们重命名),不会帮我们生成多余的目录:

这个文件夹内部才是我们需要的文件:

它会自动帮我们生成一个名为 归档.zip 的文件:

这个文件夹内部才是我们需要的文件:

这个文件夹内部才是我们需要的文件:

这在对大量文件操作时需要额外注意,否则会白白开销你一次拷贝文件的时间!

我们紧接着上面的情景。假设我们当前的目录为项目目录,而我们手滑使用了系统自带的可视化解压工具生成了一个多余的目录。我们接下来要把系统生成的多余的 归档 文件夹里的文件拷贝到当前目录,那么我们可以使用带 r 参数的 cp 命令:

这里 -r 参数表示递归复制命令,用于目录的递归复制。注意命令中的 归档/ 表示 归档 目录下的所有文件,意思和 归档/* 相同:

选项参数 -r 写成 -R 是等效的:

但如果直接传入参数 归档 ,则表示将这个目录整个地复制:

同一个目录下不可能有两个相同名称的子目录,这当然就会出错,当然我们可以将其复制到另外一个目录里:

你可能要问,加 r 和不加 r 有啥区别?如果不加 r ,则默认是跳过目录的,也就是说只能copy文件:

我们还是紧接着上面的场景。假定我们已经将 归档 文件夹中的 test.txt 、 test2.txt 成功拷贝到当前项目目录了。现在我们有了个新的需求:我们在项目目录中建了一个 data 子目录,现在需要将项目目录中的 test.txt 、 test2.txt 移动到 data 子目录中。这就需要如下命令:

注意,如果有多个源文件或目录,则最后一个目标文件(也就是这里的data)一定是目录

。当我们只移动一个文件时,就有潜在的二义性。这里因为 data 目录本身存在,我们移动 test.txt 到 data 目录还能正常执行:

但是如果data目录不存在,就会将 mv 解释为重命名的意思,比如如果我们将 data 目录删除再执行:

此时就等效于把 test.txt 更名为 data 文件:

可以看出,之一个字母是 – ,也就意味着 data 是普通文件,不是目录(是目录的话之一个字母是 d )。

因此,使用 mv 语句时要格外小心,因为它既有移动到目录的作用,也有重命名的作用,一不注意就可能出错!

有移动到目录的作用,也有重命名的作用,一不注意就可能出错!

关于linux支持的压缩类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux系统支持压缩类型有哪些? (linux支持的压缩类型)