linux压缩命令:1、tar命令,附加一个“z”压缩选项即可,语法“tar -z 压缩包 源文件或目录”;2、zip命令,可创建一个压缩文件,与此同时保留原始文件的完整性,语法“zip [选项] 压缩包名 源文件或源目录列表”;3、gzip命令,语法“gzip [选项] 源文件”;4、bzip2命令,语法“bzip2 [选项] 源文件”;5、xz命令,语法“xz 压缩包名”。
本教程操作环境:linux7.3系统、Dell G3电脑。
linux中压缩是什么
压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。
压缩和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。
由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,有方便在网络上传送。
对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩和无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩。
linux压缩命令
常用的压缩命令有很多,比如 gzip、 zip、 bzip2 。
tar压缩命令
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 ball”,使用相同的语法,但要指定要包含的文件为一组,而不是单个文件。这里有一个示例:
$ tar cfz bin.tgz bin/*
^ ^
| +-- 将被包含的文件
+ 新的文件
zip压缩命令
zip
命令创建一个压缩文件,与此同时保留原始文件的完整性。语法像使用 tar
一样简单,只是你必需记住,你的原始文件名称应该是命令行上的最后一个参数。
$ zip ./bigfile.zip bigfile
updating: 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
将“就地”“加密”文件。换句话说,原始文件将被“加密”文件替换。
$ 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
是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。
$ 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
命令都用压缩文件替换原始文件。tar
和 zip
命令不替换。
运行时间
xz
命令似乎比其它命令需要花费更多的时间来“加密”文件。对于 bigfile
来说,大概的时间是:
命令 运行时间
tar 4.9 秒
zip 5.2 秒
bzip2 22.8 秒
gzip 4.8 秒
xz 50.4 秒
解压缩文件很可能比压缩时间要短得多。
文件权限
不管你对压缩文件设置什么权限,压缩文件的权限将基于你的 umask
设置,但 bzip2
除外,它保留了原始文件的权限。
与 Windows 的兼容性
zip
命令创建的文件可以在 Windows 系统以及 Linux 和其他 Unix 系统上使用(即解压),而无需安装其他工具,无论这些工具可能是可用还是不可用的。
相关推荐:《Linux视频教程》
以上是linux压缩命令有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!