linux压缩文件夹命令在 Linux 上压缩文件的 5 种方法




linux压缩文件夹命令在 Linux 上压缩文件的 5 种方法

2022-07-21 2:25:01 网络知识 官方管理员

linux压缩文件夹命令(在Linux上压缩文件的5种方法)(1)

在Linux系统上有很多可以用于压缩文件的工具,但它们的表现并不都是一样的,也不是所有的压缩效果都是一样的。在这篇文章中,我们比较其中的五个工具。

在Linux上有不少用于压缩文件命令。最新最有效的一个方法是xz,但是所有的方法都有节省磁盘空间和维护备份文件供以后使用的优点。在这篇文章中,我们将比较这些压缩命令并指出显著的不同。

tar

tar命令不是专门的压缩命令。它通常用于将多个文件拉入一个单个的文件中,以便容易地传输到另一个系统,或者将文件作为一个相关的组进行备份。它也提供压缩的功能,这就很有意义了,附加一个z压缩选项能够实现压缩文件。

当使用z选项为tar命令附加压缩过程时,tar使用gzip来进行压缩。

就像压缩一组文件一样,你可以使用tar来压缩单个文件,尽管这种操作与直接使用gzip相比没有特别的优势。要使用tar这样做,只需要使用tarcfznewtarfilefilename命令来标识要压缩的文件,就像标识一组文件一样,像这样:

$tarcfzbigfile.tgzbigfile^^||+-新的文件+-将被压缩的文件$ls-lbigfile*-rw-rw-r--1shsshs103270400Apr1616:09bigfile-rw-rw-r--1shsshs21608325Apr1616:08bigfile.tgz

注意,文件的大小显著减少了。

如果你愿意,你可以使用tar.gz扩展名,这可能会使文件的特征更加明显,但是大多数的Linux用户将很可能会意识到与tgz的意思是一样的–tar和gz的组合来显示文件是一个压缩的tar文件。在压缩完成后,你将同时得到原始文件和压缩文件。

要将很多文件收集在一起并在一个命令中压缩出“tarball”,使用相同的语法,但要指定要包含的文件为一组,而不是单个文件。这里有一个示例:

$tarcfzbin.tgzbin/*^^|+--将被包含的文件+新的文件

zip

zip命令创建一个压缩文件,与此同时保留原始文件的完整性。语法像使用tar一样简单,只是你必需记住,你的原始文件名称应该是命令行上的最后一个参数。

$zip./bigfile.zipbigfileupdating:bigfile(deflated79%)$ls-lbigfilebigfile.zip-rw-rw-r--1shsshs103270400Apr1611:18bigfile-rw-rw-r--1shsshs21606889Apr1611:19bigfile.zip

gzip

gzip命令非常容易使用。你只需要键入gzip,紧随其后的是你想要压缩的文件名称。不像上述描述的命令,gzip将“就地”“加密”文件。换句话说,原始文件将被“加密”文件替换。

$gzipbigfile$ls-lbigfile*-rw-rw-r--1shsshs21606751Apr1517:57bigfile.gz

bzip2

像使用gzip命令一样,bzip2将在你选择的文件“就地”压缩,不留下原始文件。

$bzipbigfile$ls-lbigfile*-rw-rw-r--1shsshs18115234Apr1517:57bigfile.bz2

xz

xz是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。

$xzbigfile$ls-lbigfile*-rw-rw-r--1shsshs13427236Apr1517:30bigfile.xz

对于大文件来说,你可能会注意到xz将比其它的压缩命令花费更多的运行时间,但是压缩的结果却是非常令人赞叹的。

对比

大多数人都听说过“大小不是一切”。所以,让我们比较一下文件大小以及一些当你计划如何压缩文件时的问题。

下面显示的统计数据都与压缩单个文件相关,在上面显示的示例中使用bigfile。这个文件是一个大的且相当随机的文本文件。压缩率在一定程度上取决于文件的内容。

大小减缩率

当比较时,上面显示的各种压缩命产生下面的结果。百分比表示压缩文件与原始文件的比较效果。

-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%的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。

是否替换原始文件

bzip2、gzip和xz命令都用压缩文件替换原始文件。tar和zip命令不替换。

运行时间

xz命令似乎比其它命令需要花费更多的时间来“加密”文件。对于bigfile来说,大概的时间是:

命令运行时间tar4.9秒zip5.2秒bzip222.8秒gzip4.8秒xz50.4秒

解压缩文件很可能比压缩时间要短得多。

文件权限

不管你对压缩文件设置什么权限,压缩文件的权限将基于你的umask设置,但bzip2除外,它保留了原始文件的权限。

与Windows的兼容性

zip命令创建的文件可以在Windows系统以及Linux和其他Unix系统上使用(即解压),而无需安装其他工具,无论这些工具可能是可用还是不可用的。

解压缩文件

解压文件的命令与压缩文件的命令类似。在我们运行上述压缩命令后,这些命令用于解压缩bigfile:

  • tar:tarxfbigfile.tgz
  • zip:unzipbigfile.zip
  • gzip:gunzipbigfile.gz
  • bzip2:bunzip2bigfile.gz2
  • xz:xz-dbigfile.xz或unxzbigfile.xz

自己运行压缩对比

如果你想自己运行一些测试,抓取一个大的且可以替换的文件,并使用上面显示的每个命令来压缩它——最好使用一个新的子目录。你可能需要先安装xz,如果你想在测试中包含它的话。这个脚本可能更容易地进行压缩,但是可能需要花费几分钟完成。

#!/bin/bash#询问用户文件名称echo-n"filename>"readfilename#你需要这个,因为一些命令将替换原始文件cp$filename$filename-2#先清理(以免先前的结果仍然可用)rm$filename.*tarcvfz./$filename.tgz$filename>/dev/nullzip$filename.zip$filename>/dev/nullbzip2$filename#恢复原始文件cp$filename-2$filenamegzip$filename#恢复原始文件cp$filename-2$filenamexz$filename#显示结果ls-l$filename.*#替换原始文件mv$filename-2$filename


发表评论:

最近发表
网站分类
标签列表