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 成功拷贝到当前项目目录了。现在我们有了个新的需求:我们在项目目录中建了一个>香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
linux 下zip包最大是多少啊?
看文件系统,linux默认安装多为Ext吧,Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的单个文件,所以你要是Ext3的最大就支持2TB,ex4则是16TB但文件,够大了吧??呵呵呵。
为什么linux内核要压缩
Linxu的内核压缩主要原因是用在嵌入式系统环境里面的。 在嵌入式系统的存储空容量一般都比较小,内核要常驻内存,采用zImage可以占用较少的存储空间,因此牺牲一点性能上的代价也是值得的,所以一般嵌入式系统均采用压缩的内核映像文件,即zImage。 这里说下Linux的内核影像文件:Linux 内核映像文件有两种:一种是非压缩版本,叫Image;另一种是它的压缩版本,叫zImage。 zImage是Image经过压缩形成的,所以它的大小比Image小。 为了能使用zImage这个压缩版本,必须在它的开头加上解压缩的代码,将zImage 解压缩之后才能执行,因此它的执行速度比Image要慢。
linux系统支持FAT32么?
在linux下可以读取FAT32格式的分区中的数据,确定内核支持FAT32后,mount -t vfat /dev/hdXY /dirctory即可。 如果想挂载FAT32格式的磁盘分区,只需要用mount命令加载即可。 linux是什么?Linux是一种自由和开放源码的类Unix操作系统,目前在服务器以及其他移动设备(如智能手机、平板电脑等)领域应用相当广泛。 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统。 正是由于该款系统初始程序是开源的,因此每个懂编程的都人都可以在其基础上基础开发,从而衍发出众多版本Linux系统,Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机,正是由于其拥有强大的后期开发能力,因此在各个领域都会出现不同版本的Linux系统,但它们都是使用了Linux内核,据统计,在全球运行速度最快的十大超级计算机均是使用基于Linux内核的系统。
发表评论