压缩及归档工具

常用的有这些:

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
下一篇 2016-09-19

相关推荐

  • 搭建简单的svn服务器

        svn在版本控制方面还是挺有用的。坑运维的人中就有研发,出补丁或版本的时候很坚定的说“升吧,没问题”,结果升上去后就会狂报错。所以运维的要在打补丁,尤其是改动很大的时候一定要把后路想好。否则会长时间的影响业务。svn就有一个很好的机制–回退(当然你也可以事先备份下),可以回退到之前的某个时间节点,操作很方便的。当然sv…

    Linux干货 2015-11-18
  • Memcached实现Tomcat的session会话绑定

    memcached介绍:  Memcached是一个高性能的分布式内存对称缓存系统;通过缓存查询数据库结果,介绍数据库访问次数,以提高web应用的速度、提高扩展性。  Memcached特点:   协议简单   基于libevent的事件处理   内置内存存储方式  memcached不互相通信的分…

    Linux干货 2015-08-01
  • MogileFS基于Nginx反向代理实现分布式存储与访问

    前言 随着信息社会的发展,越来越多的信息被数据化,尤其是伴随着大数据时代的来临,数据呈爆炸式增长。传统存储在面对海量数据存储表现出的力不从心已经是不争的事实,例如:纵向扩展受阵列空间限制,横向扩展受交换设备限制,节点受文件系统限制等。而分布式存储的出现在一定程度上有效的缓解了这一问题,目前比较流行的分布式文件系统有:GFS、HDFS、GlusterFS、Mo…

    Linux干货 2015-07-08
  • Java中的CopyOnWrite容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和…

    Linux干货 2016-08-15
  • linux下逻辑卷管理LVM

    LVM:逻辑卷管理 LVM这个技术就是把底层的存储设备组成一个卷组,底层存储设备的存储空间会变成一个个PE(盘区,大小为2的n次方),这个卷组里就是一个个的PE,然后,这个卷组会重新分区,这些分区就为逻辑卷,这些逻辑卷都是由卷组里分配的PE组成。 关于LVM里的命令: pv的命令: pvcreate pvs pvdisplay pvscan pvremove…

    Linux干货 2015-08-04
  • 浅谈编译kernel+busybox构建拥有远程ssh登录和web功能最小linux系统(二)

    忘了介绍本文的源码的版本了 dropbear-2013.58.tar.bz2    busybox-1.21.1.tar.bz2 linux-3.13.6.tar.xz  nginx-1.4.7 基于上文,我们还差group文件没有写 root@mysql etc]# vi group  …

    Linux干货 2015-09-22