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

/ 0评 / 0

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

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

在 Linux 上有不少用百思特网于紧缩文件的命令。最新最有效的一个办法是 xz,但是所有的办法都有节俭磁盘空间和保护备份文件供以后应用的长处。在这篇文章中,我们将比拟这些紧缩命令并指出明显的不同。

tar

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

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

就像紧缩一组文件一样,你可以应用 tar 来紧缩单个文件,尽管这种操作与直接应用 gzip 相比没有特殊的优势。要应用 tar 这样做,只须要应用 tar cfz newtarfile filename 命令来标识要紧缩的文件,就像标识一组文件一样,像这样:

$tarcfzbigfile.tgzbigfile^^||+-新的文件+-将被紧缩的文件$ls-lbigfile*-rw-rw-r--1shsshs103270400Apr1616:09bigfile-rw-rw-r--1shsshs216083百思特网25Apr1616:08bigfile.tgz

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

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

要将很多文件收集在一起并在一个命令中紧缩出 “tar ball”,应用雷同的语法,但要指定要包括的文件为一组,而不是单个文件。这里有一个示例:

$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:

自己运行紧缩比较

如果你想自己运行一些测试,抓取一个大的且可以调换的文件,并应用上面显示的每个命令来紧缩它 —— 最好应用一个新的子目录。你可能须要先安装 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#&nb百思特网sp;恢复原始文件cp$filename-2$filenamegzip$filename#恢复原始文件cp$filename-2$filenamexz$filename#显示成果ls-l$filename.*#调换原始文件mv$filename-2$filename

via: https://www.networkworld.com/article/3538471/how-to-compress-files-on-linux-5-ways.html

作者: Sandra Henry-Stocker 选题: lujun9972 译者: robsean 校订: (原创版权www.isoyu.com)wxy