当前位置: 首页 > 科技观察

在Linux上压缩文件的5种方法

时间:2023-03-18 01:26:01 科技观察

在Linux上有很多压缩文件的命令。最新和最高效的是xz,但它们都具有节省磁盘空间和维护备份文件供以后使用的优点。在本文中,我们将比较这些压缩命令并指出显着差异。tartar命令不是专门的压缩命令。它通常用于将多个文件拉成一个文件以便于传输到另一个系统,或者将文件作为相关组进行备份。它还提供压缩,这很有意义,并且附加z压缩选项可以启用压缩文件。当使用z选项将压缩过程附加到tar命令时,tar使用gzip进行压缩。就像压缩一组文件一样,您可以使用tar压缩单个文件,尽管此操作与直接使用gzip相比没有特别的优势。要用tar做到这一点,只需使用tarcfznewtarfilefilename命令来识别要压缩的文件,就像一组文件,像这样:$tarcfzbigfile.tgzbigfile^^||+-newfile+-willbecompressedThefile$ls-lbigfile*-rw-rw-r--1shsshs103270400Apr1616:09bigfile-rw-rw-r--1shsshs21608325Apr1616:08bigfile.tgz请注意,文件的大小已显着减小。如果你愿意,你可以使用tar.gz扩展名,这可能会使文件更具特色,但大多数Linux用户可能会意识到与tgz相同的东西——tar和gz的组合来显示该文件是一个压缩的tar文件。压缩完成后,您将同时获得原始文件和压缩文件。要将多个文件收集在一起并在一个命令中将它们压缩成“tarball”,请使用相同的语法,但要将文件指定为一组而不是单个文件。下面是一个示例:$tarcfzbin.tgzbin/*^^|+--要包含的文件+新文件zipzip命令创建一个压缩文件,同时保留原始文件的完整性。语法就像使用tar一样简单,您只需要记住您的原始文件名应该是命令行的最后一个参数。$zip./bigfile.zipbigfileupdating:bigfile(deflated79%)$ls-lbigfilebigfile.zip-rw-rw-r--1shsshs103270400Apr1611:18bigfile-rw-rw-r--1shsshs21606889Apr1611:19bigfile.zipgzipgzip命令非常容易使用。您只需键入gzip,然后键入要压缩的文件的名称。与上述命令不同,gzip将“就地”加密文件。换句话说,原始文件将被加密文件替换。$gzipbigfile$ls-lbigfile*-rw-rw-r--1shsshs21606751Apr1517:57bigfile.gzbzip2与gzip命令一样,bzip2将“就地”压缩您选择的文件,而保留原始文件。$bzipbigfile$ls-lbigfile*-rw-rw-r--1shsshs18115234Apr1517:57bigfile.bz2xzxz是压缩命令团队的一个相对较新的成员,在压缩文件的能力方面处于领先地位。与前两个命令一样,您只需要向命令提供文件名。同样,原始文件是就地压缩的。$xzbigfile$ls-lbigfile*-rw-rw-r--1shsshs13427236Apr1517:30bigfile.xz对于大文件,您可能会注意到xz比其他压缩命令运行时间更长,但压缩结果非常令人钦佩。对比大多数人都听说过“尺寸不是一切”。因此,当您计划压缩文件时,让我们比较文件大小和一些问题。下面显示的统计数据都与压缩单个文件有关,在上面的示例中使用bigfile。该文件是一个很大且相当随机的文本文件。压缩率在某种程度上取决于文件的内容。(1)尺寸缩减率上面显示的各种压缩命令在比较时产生以下结果。百分比表示压缩文件与原始文件相比的好坏程度。-rw-rw-r--1shsshs103270400Apr1614:01bigfile--------------------------------------------------rw-rw-r--1shsshs18115234Apr1613:59bigfile.bz2~17%-rw-rw-r--1shsshs21606751Apr1614:00bigfile.gz~21%-rw-rw-r--1shsshs21608322Apr1613:59bigfile.tgz~21%-rw-rw-r--1shsshs13427236Apr1614:00bigfile.xz~13%-rw-rw-r--1shsshs21606889Apr1613:59bigfile.zip~21%最终xz命令获胜压缩文件的大小只有13%,但是所有这些压缩命令都显着减小了原始文件的大小。(2)是否替换原文件bzip2、gzip、xz命令都是用压缩文件替换原文件。tar和zip命令不会替换。(3)运行时间xz命令加密文件似乎比其他命令花费更多的时间。bigfile的大约时间是:命令运行时间tar4.9秒zip5.2秒bzip222.8秒gzip4.8秒xz50.4秒解压缩文件可能比压缩文件要短得多。(4)文件权限无论你对压缩文件设置什么权限,压缩文件的权限都将基于你的umask设置,除了bzip2,它保留了原始文件的权限。(5)与Windows的兼容性zip命令创建的文件可以在Windows系统以及Linux和其他Unix系统上使用(即解压缩),而无需安装额外的工具,这些工具可能可用也可能不可用。解压缩文件解压缩文件的命令与压缩文件的命令类似。这些命令用于我们运行上述压缩命令后解压大文件:tar:tarxfbigfile.tgzzip:unzipbigfile.zipgzip:gunzipbigfile.gzbzip2:bunzip2bigfile.gz2xz:xz-dbigfile.xz或者unxzbigfile.xz自己运行压缩比较如果你想自己运行一些测试,获取一个大的可替换文件并使用上面显示的每个命令压缩它-最好在一个新的子目录中。如果你想将它包含在你的测试中,你可能需要先安装它。此脚本可能更容易压缩,但可能需要几分钟才能完成。rm$filename.*tarcvfz./$filename.tgz$filename>/dev/nullzip$filename.zip$filename>/dev/nullbzip2$filename#恢复原文件cp$filename-2$filenamegzip$filename#恢复原文件filecp$filename-2$filenamexz$filename#显示结果ls-l$filename.*#替换原文件mv$filename-2$filename