今天主要说一下如何在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
1012Khome.tar
例:调用gzip命令将/home目录下的所有文件打包并压缩成home.tar.gz。
[root@localhost ~]# tar zcvf home.tar.gz /home
-z,调用gzip来压缩包文件。
查看所生成的压缩文件的大小,可以发现体积大幅缩小。
[root@localhost ~]# du -h home.tar.gz
104Khome.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
92Khome.tar.bz2
(2)解包解压缩
用tar命令进行解包或解压缩时的格式为:
tar [选项] 打包或压缩文件名 [-C 目标目录]
例:将home.tar.gz解压到当前目录下(执行命令后会在当前目录下创建一个名为home的目录,其中存放解压后的文件)
[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来解压。

转载于:https://blog.51cto.com/yttitan/1122797

RHEL6入门系列之十七,打包与压缩相关推荐

  1. Go入门系列(十七) go并发之基于共享变量的并发

    本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...

  2. RHEL6入门系列之二十七,源码安装及软件安装综合实例

    本篇博文中用到的所有软件和工具都可以从51cto下载,地址:http://down.51cto.com/data/676524 一. 源代码安装软件 1.源代码编译概述 虽然通过RPM软件包大大简化了 ...

  3. RHEL6入门系列之三,GNU计划与Linux发行版

    1.GNU计划 在上篇博文中谈到Kernel是Linux系统的心脏,但Kernel只能实现系统最基本的功能,作为一个操作系统,仅仅只有内核是远远不够的,我们的重点是要使用在Kernel之上运行的Web ...

  4. RHEL6入门系列之十三,阶段练习1

    Shell的基本命令部分到这里就结束了,前面曾提到过,学到这里Linux基本就算入门了,这就相当于在Windows系统里学会了如何使用鼠标,学会了怎样去复制.粘贴.查看.搜索文件--,只要打开了电脑, ...

  5. RHEL6入门系列之三十,服务管理

    服务是在系统后台运行,并等待用户或其它软件调用的一类特殊程序.由于Linux主要是用作服务器操作系统,因而当学习完入门课程之后,接下来就要学习对各种常用服务的配置与管理,如实现Web服务器的httpd ...

  6. RHEL6入门系列之十一,内/外部命令、重定向、管道

    前面一口气介绍了18个命令,可能大家都已经有些晕了.学习Linux就是这样,它不像Windows那样的傻瓜式操作,要想学好Linux是必须要下苦功的.所以,Linux本身就不是一个面向普通用户的桌面操 ...

  7. RHEL6入门系列之二十六,利用rpm进行软件包管理

    在上篇博文中介绍的yum是目前在RHEL系统中安装软件的首选方式,传统的rpm则主要是用作查询,如查询系统中是否已经安装了某个软件等.今天我们就一起来了解一下rpm的一些常用用法. 一.rpm软件包 ...

  8. RHEL6入门系列之九,常用命令2

    今天还是继续来学习Linux的基本命令. 4.touch命令--建立空文件 touch命令用于建立空文件. [root@localhost ~]# mkdir /root/test           ...

  9. RHEL6入门系列之十,常用命令3

    今天首先要介绍两个比较重要的查找命令:find.grep.在介绍这两个命令之前,先把它们的区别解释一下. find命令是在某个指定的路径下找我们需要的文件或目录,目标是文件或目录. grep命令是在某 ...

最新文章

  1. Java模块化之路 —— OSGI介绍
  2. 使用Docker虚拟化出一个Centos7操作系统(140、141机器上执行)
  3. 【转】Docker 运行时资源限制-内存memory、交换机分区Swap、CPU
  4. 安卓程序段——时间测试函数
  5. java中事件的概念,事件中心上IoTHub数据的概念
  6. 【C#桌面应用】第二节:利用Visual Studio2019 创建桌面应用
  7. 基于mapreducer的图算法
  8. Opencv之生成棋盘标定板
  9. 怎么升级计算机的操作系统,电脑如何升级系统版本_Windows10/7电脑升级系统版本的操作步骤...
  10. SecureCRT zmodem
  11. buuoj 小易的U盘
  12. 关于Raster的理解
  13. Linux基础-分区规划与使用
  14. nginx 按天分割日志
  15. 网络安全课程设计_网络规划
  16. lumen 配置数据库结果自动转数组_Laravel Lumen 数组操作
  17. 【软件测试】—— 基础知识总结
  18. 数据分析及挖掘到底能带来什么价值?
  19. Arduino 项目笔记|旋转鞋柜#按钮去抖Debounce#电机#压力传感器
  20. 网康防火墙--上线指南_在线付款接受指南-第2部分

热门文章

  1. Android编程权威指南学习:Activity之间传递参数
  2. wemall app商城源码Android之支付宝通知处理类
  3. VisualNet铁路通信管理
  4. 基于HAProxy的网站架构
  5. 任务分发系统-Qcmd-http详解
  6. hibernate笔记(一)
  7. 分布式锁 分布式系统
  8. Consul服务治理原理简介及使用过程
  9. Shiro系列-Shiro如何实现身份验证
  10. Laravel源码解析之中间件