知乐空间

linux压缩命令tar.gz(linux压缩命令)

linux压缩命令(tar.gz Linux压缩命令)原创Linux中国2020-05-06 23:21:09

Linux系统上可以用来压缩文件的工具很多,但是性能不一样,也不是所有的压缩效果都一样。在本文中,我们比较了其中的五种工具。

来源:https://linux.cn/article-12190-1.html

作者:桑德拉·亨利·斯托克

译者:郑

Linux上有很多压缩文件的命令。最新最有效的方法是xz,但所有方法都有节省磁盘空空间和维护备份文件以备将来使用的优点。在本文中,我们将比较这些压缩命令,并指出中的显著差异。

水手

tar命令不是一个特殊的压缩命令。它通常用于将多个文件拉成一个文件,以便于传输到另一个系统,或者将文件作为相关组进行备份。它还提供了压缩的功能,非常有意义。添加Z压缩选项可以压缩文件。

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

就像压缩一组文件一样,可以使用tar压缩单个文件,虽然这个操作与直接使用gzip相比没有什么特别的优势。要对tar执行此操作,只需使用tar cfz newtarfile filename命令来标识要压缩的文件,就像标识一组文件一样,如下所示:

$ tar cfz bigfile.tgz bigfile            ^            ^            |            |            +- 新的文件  +- 将被压缩的文件$ ls -l bigfile*-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz

请注意,文件大小已显著减小。

如果您愿意,可以使用tar.gz扩展名,这可能会使文件的特征更加明显,但大多数Linux用户可能会意识到它与tgz的含义相同-tar和gz的组合表明该文件是一个压缩的tar文件。压缩完成后,您将获得原始文件和压缩文件。

要将许多文件收集在一起,并在一个命令中将其压缩成“焦油球”,请使用相同的语法和,但指定要作为一个组而不是单个文件包含的文件。这里有一个例子:

$ tar cfz bin.tgz bin/*          ^         ^          |         +-- 将被包含的文件          + 新的文件

活力

Zip命令创建一个压缩文件,同时保持原始文件的完整性。语法就像使用tar一样简单,但是您必须记住,您的原始文件名应该是命令行上的最后一个参数。

$ zip ./bigfile.zip bigfileupdating: bigfile (deflated 79%)$ ls -l bigfile bigfile.zip-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile-rw-rw-r-- 1 shs shs  21606889 Apr 16 11:19 bigfile.zip

压缩

gzip命令非常容易使用。你所要做的就是键入gzip,后跟你想要压缩的文件名。与上面描述的命令不同,gzip将“就地”加密文件。换句话说,原始文件将被“加密”文件替换。

$ gzip bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs  21606751 Apr 15 17:57 bigfile.gz

bzip2

像gzip命令一样,bzip2会“就地”压缩您选择的文件,而不会留下原始文件。

$ bzip bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs  18115234 Apr 15 17:57 bigfile.bz2

学制

Xz是压缩命令团队中相对较新的成员,在压缩文件的能力上处于领先地位。像前面两个命令一样,您只需要为命令提供文件名。同样,原始文件被就地压缩。

$ xz bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz

对于大文件,您可能会注意到xz将比其他压缩命令花费更多的运行时间,但是压缩结果非常令人印象深刻。

对比

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

下面显示的统计数据都与压缩单个文件有关。上面显示的例子中使用了bigfile。这个文件是一个很大的随机文本文件。压缩率在某种程度上取决于文件的内容。

尺寸缩减率

当进行比较时,上面显示的各种压缩顺序会产生以下结果。百分比表示压缩文件和原始文件之间的比较效果。

-rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile-------------------------------------------------------rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2    ~17%-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz     ~21%-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz    ~21%-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz     ~13%-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip    ~21%

xz命令赢了,最后压缩的文件只有13%的大小被压缩了,但是所有这些压缩的命令都显著减小了原始文件的大小。

替换原始文件?

Bzip2、gzip和xz命令都用压缩文件替换原始文件。并且tarzip命令不会被替换。

运行时间

xz命令似乎比其他命令花费更多的时间来“加密”文件。对于bigfile,大约时间为:

命令      运行时间tar       4.9 秒zip       5.2 秒bzip2    22.8 秒gzip      4.8 秒xz       50.4 秒

解压缩文件可能比压缩文件花费的时间少得多。

文件权限

无论您对压缩文件设置什么权限,压缩文件的权限都将基于您的umask设置,bzip2除外,它保留了原始文件的权限。

与视窗系统的兼容性

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

解压缩文件

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

tar: tar xf bigfile.tgz

zip:解压缩bigfile.zip

bigfile.gz

bzip2: bunzip2 bigfile.gz2

Xz: xz -d bigfile.xz或unxz bigfile.xz

运行您自己的压缩比较

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

#!/bin/bash# 询问用户文件名称echo -n "filename> "read filename# 你需要这个,因为一些命令将替换原始文件cp $filename $filename-2# 先清理(以免先前的结果仍然可用)rm $filename.*tar cvfz ./$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

via:https://www . network world . com/article/3538471/如何压缩linux上的文件-5-way . html

作者:桑德拉·亨利-斯托克主题:lujun9972译者:robsean校对:wxy

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: