译者:郑
在Linux上有不少用于压缩文件的。最新最有效的一个方式是,而且所有的方式都有节约c盘空间和维护备份文件供之后使用的优点。在这篇文章中,我们将比较这种压缩并强调明显的不同。
tar
不是专门的压缩命令。它一般用于将多个文件拉入一个单个的文件中,便于容易地传输到另一个,或则将文件作为一个相关的组进行备份。它也提供压缩的功能,这就很有意义了,附加一个z压缩选项才能实现压缩文件。
当使用z选项为命令附加压缩过程时,使用来进行压缩。
如同压缩一组文件一样,你可以使用来压缩单个文件qq linux,虽然这些操作与直接使用相比没有非常的优势。要使用这样做,只须要使用命令来标示要压缩的文件,如同标示一组文件一样,像这样:
$tarcfzbigfile.tgzbigfile
^^
||
+-新的文件+-将被压缩的文件
$ls-lbigfile*
-rw-rw-r--1shsshs103270400Apr1616:09bigfile
-rw-rw-r--1shsshs21608325Apr1616:08bigfile.tgz
注意,文件的大小明显降低了。
假如你乐意linux系统有哪几种文件类型,你可以使用tar.gz扩充名,这可能会使文件的特点愈加显著,而且大多数的Linux用户将很可能会意识到与tgz的意思是一样的–和gz的组合来显示文件是一个压缩的tar文件。在压缩完成后linux系统有哪几种文件类型,你将同时得到原始文件和压缩文件。
要将好多文件搜集在一起并在一个命令中压缩出“tarball”,使用相同的句型,但要指定要包含的文件为一组,而不是单个文件。这儿有一个示例:
$tarcfzbin.tgzbin/*
^^
|+--将被包含的文件
+新的文件
zip
命令创建一个压缩文件,与此同时保留原始文件的完整性。句型像使用一样简单,只是你必需记住,你的原始文件名称应当是命令行上的最后一个参数。
$zip./bigfile.zipbigfile
updating:bigfile(deflated79%)
$ls-lbigfilebigfile.zip
-rw-rw-r--1shsshs103270400Apr1611:18bigfile
-rw-rw-r--1shsshs21606889Apr1611:19bigfile.zip
gzip
命令十分容易使用。你只须要键入,紧跟其后的是你想要压缩的文件名称。不像上述描述的命令,将“就地”加密文件。换句话说,原始文件将被加密文件替换。
$gzipbigfile
$ls-lbigfile*
-rw-rw-r--1shsshs21606751Apr1517:57bigfile.gz
bzip2
像使用命令一样,将在你选择的文件“就地”压缩,不留下原始文件。
$bzipbigfile
$ls-lbigfile*
-rw-rw-r--1shsshs18115234Apr1517:57bigfile.bz2
xz
是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像以前的两个命令一样,你只须要将文件名称提供给命令。再指出一次,原始文件被就地压缩。
$xzbigfile
$ls-lbigfile*
-rw-rw-r--1shsshs13427236Apr1517:30bigfile.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%
命令取胜,最终只有压缩文件13%的大小,并且所有这种压缩命令都相当明显地减低原始文件的大小。
是否替换原始文件
、和命令都用压缩文件替换原始文件。和命令不替换。
运行时间
命令显然比其它命令须要耗费更多的时间来加密文件。对于bigfile来说,大约的时间是:
命令运行时间
tar4.9秒
zip5.2秒
bzip222.8秒
gzip4.8秒
xz50.4秒
解压缩文件很可能比压缩时间要短得多。
文件权限
不管你对压缩文件设置哪些权限,压缩文件的权限将基于你的umask设置,但除外,它保留了原始文件的权限。
与Windows的兼容性
命令创建的文件可以在Windows系统以及Linux和其他Unix系统上使用(即解压),而无需安装其他工具,无论这种工具可能是可用还是不可用的。
解压缩文件
解压文件的命令与压缩文件的命令类似。在我们运行上述压缩命令后,这种命令用于解压缩bigfile:
tar:
zip:
gzip:
bzip2:
xz:或
自己运行压缩对比
假如你想自己运行一些测试,抓取一个大的且可以替换的文件,并使用里面显示的每位命令来压缩它——最好使用一个新的子目录。你可能须要先安装linux安装,假如你想在测试中包含它的话。这个可能更容易地进行压缩,并且可能须要耗费几分钟完成。
#!/bin/bash
#寻问用户文件名称
echo-n"filename>"
readfilename
#你须要这个,由于一些命令将替换原始文件
cp$filename$filename-2
#先清除(以免原本的结果依然可用)
rm$filename.*
tarcvfz./$filename.tgz$filename>/dev/null
zip$filename.zip$filename>/dev/null
bzip2$filename
#恢复原始文件
cp$filename-2$filename
gzip$filename
#恢复原始文件
cp$filename-2$filename
xz$filename
#显示结果
ls-l$filename.*
#替换原始文件
mv$filename-2$filename
via:
本文原创地址://q13zd.cn/lsdtmlbszmdy.html编辑:刘遄,审核员:暂无