写给初学者的Linux压缩教程

Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩。所以在了解解压缩之前就必须先了解打包命令。

Linux的打包一般都是通过tar命令来完成的,通过man tar,可以得到一些信息,tar来完成不同的动作是通过指定不同的参数来完成的,通常使用的也就是——x/c,这两个参数,它们的字面含义是c——create,x——extract,创建和分包提取,另外还有一些不常用的参数,比如a,将tar添加到另外一个tar包的末尾,t,列出包中的文件,-C,将工作目录切换到指定的目录下,指定这个参数就可以将解压后的文件放到指定的目录当中去了,等。另外有一个重要的参数f,这个参数可以打包的结果放在一个文件当中。

下面举两个简单的例子说明打包和分包提取:

1.打包文件,现在有3个文件,文件名分别是fiel1,file2,file3,把这三个文件打包成file.tar.

tar -cf file.tar file1 file2 file3

-c,打包模式,-f指定将要创建的打包结果存放文件。

2.解包文件,现在有一个包file.tar,将它解包。

tar -xf file.tar

-x,解包模式,-f指定tar包文件。

讲完打包,接着将压缩,压缩的作用毋庸置疑,一旦一件事物变的更为简单之后,各方面的操作就更为简单,Linux的压缩一般有几种方式,它们是gzip压缩,bzip2压缩,xz压缩。它们的输入都只有一个,下面讲一个实例,分别用这三种压缩方式来压缩file.tar,然后压缩好的压缩文件再分别用这三种方式解压,生成xfile.tar,由于分别对单纯的解压和压缩并不是本文的重点,所以有些参数就不着重介绍,但需要的时候会简单的介绍下。

1.用gzip操作

压缩:gzip file.tar (如想将文件压缩到指定的文件当中去,可用"gzip -c file.tar > xxx",来完成,以下相同)

解压:gunzip -c file.tar.gz > xfile.tar

2.用bzip2操作

压缩:bzip2 -c file.tar > xifle.tar.bz2

解压:bunzip2 -cv xfile.tar.bz2 > xfile.tar

3.用xz操作

压缩:xz -c file.tar > xfile.tar.xz

解压:unxz -c xfile.tar.xz > xfile.tar

对于压缩来讲,压缩率显然是首要关注点,就压缩率而言,xz>bzip2>gzip,一般情况下xz能比bzip2高出15%的压缩率,比gzip高出30%的压缩率,但是另外的有一些东西在具体的场合下还是需要关心的,比如CPU占有率,xz虽然压缩比高,但是它的耗时却是最多的,这意味着占用了更多的CPU时间片,所以在选择压缩算法的时候还应该考虑到现在的首要关注点是什么,以此来选择压缩算法。

上面分别讲解了打包和解压缩这两个过程,但这两个过程是分开的,在通常情况下,这两个过程不会分开,而是用tar包一步将多个文件打包压缩成一个压缩包,下面将分别使用tar命令调用这三种压缩方式来完成一步将多个文件打包压缩成一个压缩包。

1.用tar调用gzip将file1,file2,file3生成压缩包

tar -czvf file.tar.gz file{1,2,3}

2.用tar调用bzip2将file1,file2,file3生成压缩包

tar -cjvf file.tar.bz2 file{1,2,3}

3.用tar调用xz将file1,file2,file3生成压缩包

tar -cJvf file.tar.xz file{1,2,3}

对于上面的文字,有点需要注意,那就是后缀名并不是必须的,Linux当中后缀名都不是必须的,这应该是一个基础点,之所以指定后缀名是为了便于区别,也方便一些粗糙的识别程序。

阅读完上面的文字,我相信对Linux的压缩应该有一定程度的掌握,其实最重要的还是要学会阅读man page,里面应有尽有,只是过全就会过于复杂,不太适合初学者。

时间: 2024-11-03 21:47:20

写给初学者的Linux压缩教程的相关文章

linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)

GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发.跨平台的图形工具包.最初是为GIMP写的,已成为一个功能强大.设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一. 1.GTK安装 2.一个简单的GTK窗口程序 #include <stdio.h> #include <gtk/gtk.h> int main(int argc, char **argv) { GtkWidget *window; gtk_init(&a

photoshop切图后图片过大压缩教程分享

给各位photoshop软件的使用者们来分享一下切图后图片过大的压缩教程. 教程分享: 首先如果只是压缩的话,建议使用 ImageAlpha(专门压缩PNG) 以网上的一副海报为例(侵删) 正常从PS导出的PNG大小:     原本是 1.1 MB     在 ImageAlpha 中打开后可以看到在默认参数下可压缩 65%.     压缩后 379 KB.而且是几乎无损画面细节的.我一般在输出切图资源的时候都是靠 ImageAlpha 来完成素材的压缩. 而且 ImageAlpha 还可以通过

Kali Linux 安装教程-转

rootoorotor昨天折腾了 Kali Linux 1.0,把大概的配置过程记录下来,希望对想接触或使用Kali Linux的同学有所帮助. 请注意:1.本文为面向新手的教程,没技术含量,没事瞎折腾,感觉好玩-..如果您可以熟练使用Debian Linux或者使用过Arch Linux.Gentoo或者是自己LFS你完全可以无视本文. 2.如果您使用kali Linux只作为渗透测试之用,rootoorotor建议您在kali.org直接下载Kali Linux VMware版本在虚拟机里使

photoshop制作写在公路上的字体教程

             photoshop制作写在公路上的字体教程

ajax-求HTML5 上传图片在前端压缩教程示例

问题描述 求HTML5 上传图片在前端压缩教程示例 求HTML5 上传图片在前端压缩教程示例代码 能带用AJAX提交 asp.net后台代码接收那就最好不过了 解决方案 找jquery.form.js和ajaxfileupload这2个插件,纯ajax需要使用formdata,ie9-不支持,js也压缩不了图片 解决方案二: http://www.gbtags.com/gb/share/2991.htmhttp://www.0773linji.com/article/index/id/109

操作系统-mint17写类新的linux中没有sys.c吗

问题描述 mint17写类新的linux中没有sys.c吗 新版的linux中都没有sys.c文件吗?比如mint17.没有的话如果想要自己写一个系统调用怎么办?? 解决方案 linux编写系统调用,

初学者必看:Linux压缩那些事儿

Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩.所以在了解解压缩之前就必须先了解打包命令.Linux的打包一般都是通过tar命令来完成的,通过man tar,可以得到一些信息,tar来完成不同的动作是通过指定不同的参数来完成的,通常使用的也就是--x/c,这两个参数,它们的字面含义是c--create,x--extract,创建和分包提取,另外还有一些不常用的参数,比如a,将tar添加到另外一个tar包的末

Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行.             于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习.            后记,看完发现这篇文章和<Linux环境下的C编程指南>的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解.能让人看懂就是好文章.                        跟我一起写 Mak

超级详细的 Linux makefile 教程

概述-- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力. 因为,makefile关系到了整个工程的编