开发者社区> 科技小能手> 正文

RHEL6入门系列之十七,打包与压缩

简介:
+关注继续查看

今天主要说一下如何在Linux系统中进行打包和压缩,在这之前先要介绍一个基本命令——du。

du命令——查看目录或文件占用空间的大小

du命令用于统计指定目录或文件所占磁盘空间的大小。
常用选项:
-h,以K、M、G为单位显示统计结果(默认单位为字节)。
如,查看/root/install.log文件的大小
[root@localhost ~]# du -h /root/install.log
52K     /root/install.log
-s,查看目录本身的大小(不加该选项,则会显示指定目录下所有子目录的大小)。
[root@localhost ~]# du -hs /dev
456K    /dev
 
OK,du命令介绍完了,下面回归正题。
 
打包与压缩也属于是系统管理的基本操作,像WinRAR之类的压缩/解压缩软件应是Windows系统中的装机必备软件。在Linux系统中,通过本身的命令就可以完成打包与压缩的操作。
打包,即将许多个文件和目录合并保存为一个整体的包文件,以方便传递或携带。而压缩操作可以进一步降低打包好的包文件所占用的磁盘空间。
Linux中最常用的打包命令为tar。最常用的压缩命令有两个:gzip、bzip2,用gzip制作的压缩文件通常使用扩展名“.gz”,用bzip2制作的压缩文件通常使用扩展名“.bz2”。
bzip2的压缩效率比gzip更高,但是它们都只能针对单个文件进行压缩与解压,所以通常都是先通过tar命令将多个文件或目录打包成一个包文件,然后再通过gzip或bzip2进行压缩,如*.tar.gz和*.tar.bz2就属于这种先打包再压缩的文件。
在实际使用中,一般都是通过tar命令来调用gzip或bzip2进行压缩或解压,而很少去单独使用gzip或bzip2命令。
 
tar命令
 
tar命令本身只能对目录和文件进行打包,而并不进行压缩。
 
1)打包压缩
tar命令进行打包或压缩时的格式为:
tar [选项] 打包或压缩文件名 需要打包的源文件或目录
在使用tar命令时,选项前的“-”可以省略。
 
例:将整个/home目录下的所有文件打包成home.tar。
[root@localhost ~]# tar cvf home.tar /home
命令中用到的选项的含义:
-c,创建.tar格式的包文件。
-v,显示命令的执行过程。
-f,表示使用打包文件。
查看所生成的包文件的大小:
[root@localhost ~]# du -h home.tar
1012K   home.tar
 
例:调用gzip命令将/home目录下的所有文件打包并压缩成home.tar.gz
[root@localhost ~]# tar zcvf home.tar.gz /home
-z,调用gzip来压缩包文件。
查看所生成的压缩文件的大小,可以发现体积大幅缩小。
[root@localhost ~]# du -h home.tar.gz
104K    home.tar.gz
 
例:调用bzip2命令将/home目录下的所有文件打包并压缩成home.tar.gz
[root@localhost ~]# tar jcvf home.tar.bz2 /home
-j,调用bzip2来压缩包文件。
查看所生成的压缩文件的大小,可以发现体积进一步缩小,证明bzip2的压缩效率比gzip要高。
[root@localhost ~]# du -h home.tar.bz2
92K     home.tar.bz2
 
2)解包解压缩
tar命令进行解包或解压缩时的格式为:
tar [选项] 打包或压缩文件名 [-C 目标目录]
 
[root@localhost ~]# tar zxvf home.tar.gz
-x,解开.tar格式的包文件。
 
例:将home.tar.bz2解压到/root/home2目录中。
[root@localhost ~]# mkdir home2
[root@localhost ~]# tar jxvf home.tar.bz2 -C home2
-C,指定解压后文件存放的目的位置(注意,C是大写)。
 
3)查看打包或压缩文件内的内容
如果希望在不解压的情况下查看压缩文件内都包括哪些内容,可以执行命令:
[root@localhost ~]# tar ztvf home.tar.gz | more
-t,显示打包文件中的内容。
由于是用gzip压缩的文件,所以用-z选项调用gzip程序来解压。
如果要查看压缩文件home.tar.bz2文件中的内容,可以执行命令:
[root@localhost ~]# tar jtvf home.tar.bz2 | more
这里同样用-j选项调用bzip2来解压。
 

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1122797

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29196 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22540 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20710 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23586 0
23704
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载