压缩及归档工具

常用的有这些:

compress/uncompress: .Z

gzip/gunzip: .gz

bzip2/bunzip2: .bz2

xz/unxz: .xz

zip/unzip

tar, cpio

现在分别介绍他们的用法:

1、gzip/gunzip/zcat  .gz

             

gzip [OPTION]… FILE …  默认压缩/解压缩完之后删除原文件 

-d: 解压缩,相当于gunzip

-c: 将结果输出至标准输出,将不会操作原文件,压缩以后保留原文件 

-#:1-9,指定压缩比;比例越大,压缩后的文件越小,消耗的时间越长

-r:压缩目录,它会对目录中的每一个文件都进行压缩,并且把原文件都删除

zcat:自动调用gunzip命令,解压至临时文件中,并使用zcat打开查看;不展开的前提下,查看文本文件内容; 

zcat messages.gz  

     zcat messages.gz | less 分页看

[root@localhost ~]# cp /var/log/messages ./
[root@localhost ~]# cp /etc/rc.d/init.d/functions ./
[root@localhost ~]# ll messages functions
-rw-r--r--. 1 root root   13948 Sep 16 16:36 functions
-rw-------. 1 root root 1274157 Sep 16 16:35 messages
[root@localhost ~]# ll -h messages functions
-rw-r--r--. 1 root root  14K Sep 16 16:36 functions
-rw-------. 1 root root 1.3M Sep 16 16:35 messages
[root@localhost ~]# gzip messages
[root@localhost ~]# ll -h
total 7.8M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root  96K Sep 16 16:35 messages.gz    #只有压缩后的文件,原文件已被删除
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
-rw-r--r--.  1 root root 7.7M Sep 11 19:05 phpMyAdmin-4.0.10.17-all-languages.tar.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

2、bzip2/bunzip2/bzcat  .bz2

bzip2 [OPTION]… FILE … 

默认压缩/解压缩完之后删除原文件;只能压缩文件,不能压缩目录;

    

-k: keep, 保留原文件,不需要重定向  

-d:解压缩

-#:1-9,压缩比,默认为6; 压缩比更大,效率更高

bzcat:不显式展开的前提下查看文本文件内容;

[root@localhost ~]# bzip2 messages
[root@localhost ~]# ll -h
total 280K
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-------.  1 root root  62K Sep 16 16:35 messages.bz2   #压缩,已经有massages.bz2文件,默认压缩比更大
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#
[root@localhost ~]# bzip2 -d messages.bz2
[root@localhost ~]# ll -h
total 1.5M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root 1.3M Sep 16 16:35 messages   #解压缩,默认也会删除原文件
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

3、xz/unxz/xzcat  .xz

xz [OPTION]… FILE …   

-k: keep, 保留原文件

-d:解压缩

-#:1-9,压缩比,默认为6; 压缩比更大 

xzcat: 不显式展开的前提下查看文本文件内容;

[root@localhost ~]# xz -k messages
[root@localhost ~]# ll -h
total 1.6M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root 1.3M Sep 16 16:35 messages
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-------.  1 root root  62K Sep 16 16:35 messages.bz2
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
-rw-------.  1 root root  57K Sep 16 16:35 messages.xz   #压缩,压缩比更大
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

4、zip  .zip   

    要想压缩目录,应该把目录打包成单个文件,再压缩,而打包其实就是归档;

    zip是集归档、压缩为一体的工具。

    要指明压缩后的文件名:zip name 目录; 不会删除原文件

zip pam.d.zip pam.d/  #压缩目录
ll -h
mv pam.d pam.d.orig   #改名,因为解压缩后的文件也会叫pam.d
unzip pam.d.zip   #展开
ll
cd pam.d
ll  #没有文件,因此我们在归档时要指明哪些文件

rm -rf pam.d pam.d.zip  
zip pam.d.zip pam.d.orig/*     #*指明所有文件
ll -h    #pam.d.zip有大小了
du -sh pam.d.orig/  #可以看到原文件pam.d.orig的大小,184k

mv pam.d.orig pam.d.orig.2   #展开,不管归档后叫什么名,展开后还是归档前的那个名
ll
uzip pam.d.zip
ll  #展开仍然为pam.d.orig

5、tar   .tar   

tar [OPTION]…  用的非常多,归档工具

(1) 创建归档

tar cf /PATH/TO/SOMEFILE.tar FILE…  

(2) 查看归档文件中的文件列表  不打开的前提下查看文件

tar tf /PATH/TO/SOMEFILE.tar

(3) 展开归档

tar xf /PATH/TO/SOMEFILE.tar

tar xf /PATH/TO/SOMEFILE.tar -C /PATH/TO/DIR   默认展开在当前目录,-C 保存到指定目录

  结合压缩工具实现归档并压缩,创建时使用

-j: bzip2,  -z: gzip,  -J: xz

mv pam.d.org.2 pam.d 改名
tar -cf pam.d.tar pam.d/  归档
ll -h   可以看到pam.d.tar 为60k,不指名所有文件也能归档

展开到指明目录:
mkdir /tmp/test
tar xf pam.d.tar -C /tmp/test/
ls /tmp/test   
ls /tmp/test/pam.d   #pam.d下所有文件也在
xz pam.d.tar  删除原文件,只保留压缩文件
ll   

tar Jxf pam.d.tar.xz   #展开归档 ‘既归档又压缩’的文件
ll -h   #pam.d又在了,而tar不会删除原文件,不管是归档、展开归档

tar Jtf pam.d.tar.xz  #查看归档前的文件列表
rm pam.d.tar.xz

tar -Jcf pam.d.tar.xz pam.d  #一次完成,既归档,又压缩
ll -h

原创文章,作者:mississippi,如若转载,请注明出处:http://www.178linux.com/47020

(0)
mississippimississippi
上一篇 2016-09-19 13:48
下一篇 2016-09-19 13:48

相关推荐

  • 深入理解java嵌套类和内部类

    一、什么是嵌套类及内部类   可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:  其一、在一个类(外部类)中直接定义的内部类;  其二、在一个方法…

    Linux干货 2015-04-07
  • TCP 的那些事儿(下)

    这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的…

    Linux干货 2016-08-15
  • LAMP运行环境搭建及部署php程序软件

    前言     Linux+Apache+MySQL+PHP是大多数web服务器的运行环境,能熟练配置此运行环境是每个运维的必备基本技能,本文以安装MySQL管理工具PHPmyadmin以及博客软件wordpress为例,演示编译安装LAMP运行环境的过程。 一、实验拓扑图 二、安装步骤 2.1 编译安装Apache h…

    2015-11-26
  • 位运算符及其应用

    一、C语言的六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1.   按位与运算 按位与运算符"&"是双目运算符。     &nb…

    Linux干货 2015-11-18
  • SHELL网络爬虫实例剖析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1552472        前天简单分享了用 shell 写网络爬虫的一些见解,今天特地把代码发出来与51博…

    Linux干货 2016-08-15
  • Linux 内存管理

    1.Linux 进程在内存数据结构      可以看到一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:      1) 代码段:存放CPU执行的机器指令。通常代码区是共享的,即其它执行程序可调用它。假如机器中有数个进程运行相同的一个程序,那么它们就…

    Linux干货 2015-04-13