Linux下常用的压缩工具总结(gzip/tar/bzip2/zip)

gzip:

1)只能针对普通文件进行压缩,对文件夹、符号链接无效。

2)如果想对多个文件一起压缩并打包,gzip是无法办到的,需要结合tar进行

[[email protected] databackup]# ll
总用量 32
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog

使用“-c”选项,可以保留原有文件

[[email protected] databackup]# gzip -c passwd >passwd.gz
[[email protected] databackup]# ll
总用量 36
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog

直接使用“gzip+文件”的压缩方式,原始文件不会被保留

[[email protected] databackup]# cp /etc/shadow .
[[email protected] databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root 1393 10月 19 21:19 shadow
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
[[email protected] databackup]# gzip shadow 
[[email protected] databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root  536 10月 19 21:19 shadow.gz
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog

使用“gzip -d 压缩文件”,进行解压

[[email protected] databackup]# gzip -d shadow.gz
[[email protected] databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root 1393 10月 19 21:19 shadow
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
如上,我们发现原有的shadow文件已经出来了

gzip有九个压缩级别1-9(数字越大,压缩强度越高,速度对应的也会慢些),默认级别为6

# gzip -1 test.log

tar:

压缩/etc文件:
[[email protected] databackup]# tar -czvf etc.tar.gz /etc
[[email protected] databackup]# du -sh etc.tar.gz 
12Metc.tar.gz
解压缩,并进行查看

[[email protected] databackup]# tar -xf etc.tar.gz
tar常用的几个选项:
-c选项:表示要进行打包动作
-x选项:表示要进行拆包动作
-z选项:表示用gzip进行压缩或解压缩
-v选项:表示在拆包过程中直接整个过程,把已拆包的文件显示出来
-f选项:表示指定要拆包的文件
-t选项:列出打包的内容,适用于不想解压,但想查看压缩包内容的情况
[[email protected] databackup]# du -sh src.tar.gz 
607Msrc.tar.gz
[[email protected] databackup]# tar -ztvf src.tar.gz |less

bzip2:

bzip2用于压缩文件,bunzip2用于解压文件

但是我们查看链接文件,会发现,其实bunzip2其实就是bzip2的一个链接

[[email protected] ~]# ls -l /usr/bin/bunzip2 
lrwxrwxrwx. 1 root root 5 7月   5 23:42 /usr/bin/bunzip2 -> bzip2
[[email protected] ~]# bzip2 install.log
[[email protected] ~]# ls
anaconda-ks.cfg        index.html       install.log.syslog  M_pass.log  R_Server.log  模板  图片  下载  桌面
changehostpassword.sh  install.log.bz2  ip_list.txt         R_PWD.txt   公共的        视频  文档  音乐
[[email protected] ~]# file install.log.bz2 
install.log.bz2: bzip2 compressed data, block size = 900k
[[email protected] ~]# bunzip2 -d install.log.bz2 
[[email protected] ~]# ls
anaconda-ks.cfg        index.html   install.log.syslog  M_pass.log  R_Server.log  模板  图片  下载  桌面
changehostpassword.sh  install.log  ip_list.txt         R_PWD.txt   公共的        视频  文档  音乐

zip:

与gzip/bzip2类似,zip用于文件压缩,unzip命令用于解压缩,zip支持对文件和文件夹的压缩,-r表示递归

注意:zip在压缩文件的时候,会保留原文件

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# ls
cmake-2.8.8         libiconv-1.14.tar.gz    mcrypt-2.6.8         mhash-0.9.9.9.tar.gz                 mysql-5.5.32.tar.gz  php-5.3.27
cmake-2.8.8.tar.gz  libmcrypt-2.5.8         mcrypt-2.6.8.tar.gz  mysql-5.5.32                         nginx-1.6.2          php-5.3.27.tar.gz
libiconv-1.14       libmcrypt-2.5.8.tar.gz  mhash-0.9.9.9        mysql-5.5.32-linux2.6-x86_64.tar.gz  nginx-1.6.2.tar.gz
[[email protected] src]# zip -r nginx.zip nginx-1.6.2.tar.gz nginx-1.6.2/
[[email protected] src]# ls
cmake-2.8.8         libiconv-1.14.tar.gz    mcrypt-2.6.8         mhash-0.9.9.9.tar.gz                 mysql-5.5.32.tar.gz  nginx.zip
cmake-2.8.8.tar.gz  libmcrypt-2.5.8         mcrypt-2.6.8.tar.gz  mysql-5.5.32                         nginx-1.6.2          php-5.3.27
libiconv-1.14       libmcrypt-2.5.8.tar.gz  mhash-0.9.9.9        mysql-5.5.32-linux2.6-x86_64.tar.gz  nginx-1.6.2.tar.gz   php-5.3.27.tar.gz
[[email protected] src]# du -sh nginx.zip 
7.7Mnginx.zip

unzip结合-d参数,解压到指定文件夹

[[email protected] src]# mkdir -p /mysqlbackup
[[email protected] src]# unzip -d /mysqlbackup nginx.zip 
[[email protected] src]# ls -l /mysqlbackup/
总用量 792
drwxr-xr-x 9 root root   4096 9月  16 2014 nginx-1.6.2
-rw-r--r-- 1 root root 804164 6月  22 01:17 nginx-1.6.2.tar.gz

使用“unzip -v 压缩文件”的组合,不解压的情况下,来查看压缩文件中的内容

[[email protected] src]# unzip -v nginx.zip 
Archive:  nginx.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
  804164  Defl:N   804176   0% 06-22-2016 01:17 c721c245  nginx-1.6.2.tar.gz
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/
    2369  Defl:N      732  69% 09-16-2014 20:23 85d03809  nginx-1.6.2/configure
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/contrib/vim/
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/vim/indent/
     250  Defl:N      165  34% 09-16-2014 20:23 87c1f91b  nginx-1.6.2/contrib/vim/indent/nginx.vim
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/vim/ftdetect/
     198  Defl:N       79  60% 09-16-2014 20:23 68d244f2  nginx-1.6.2/contrib/vim/ftdetect/nginx.vim
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/contrib/vim/syntax/
   31641  Defl:N     5987  81% 09-16-2014 20:23 fe4d7202  nginx-1.6.2/contrib/vim/syntax/nginx.vim
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/unicode2nginx/

使用“unzip -t 压缩文件”,验证压缩文件的完整性

[[email protected] src]# unzip -t nginx.zip 
Archive:  nginx.zip
    testing: nginx-1.6.2.tar.gz       OK
    testing: nginx-1.6.2/             OK
    testing: nginx-1.6.2/configure    OK
    testing: nginx-1.6.2/contrib/     OK
    testing: nginx-1.6.2/contrib/vim/   OK
    testing: nginx-1.6.2/contrib/vim/indent/   OK
    testing: nginx-1.6.2/contrib/vim/indent/nginx.vim   OK
    testing: nginx-1.6.2/contrib/vim/ftdetect/   OK
    testing: nginx-1.6.2/contrib/vim/ftdetect/nginx.vim   OK
    testing: nginx-1.6.2/contrib/vim/syntax/   OK
    testing: nginx-1.6.2/contrib/vim/syntax/nginx.vim   OK
    testing: nginx-1.6.2/contrib/unicode2nginx/   OK
    testing: nginx-1.6.2/contrib/unicode2nginx/koi-utf   OK
    -------------------------------------------------------
    -------------------------------------------------------
    testing: nginx-1.6.2/Makefile     OK
    testing: nginx-1.6.2/conf/        OK
    testing: nginx-1.6.2/conf/uwsgi_params   OK
    testing: nginx-1.6.2/conf/koi-utf   OK
    testing: nginx-1.6.2/conf/win-utf   OK
    testing: nginx-1.6.2/conf/mime.types   OK
    testing: nginx-1.6.2/conf/fastcgi.conf   OK
    testing: nginx-1.6.2/conf/koi-win   OK
    testing: nginx-1.6.2/conf/fastcgi_params   OK
    testing: nginx-1.6.2/conf/scgi_params   OK
    testing: nginx-1.6.2/conf/nginx.conf   OK
No errors detected in compressed data of nginx.zip.

zip的扩展:

当我们配置好压缩文件的时候,发现其中某个比较占空间的文件并不是我们想要的,并且,我们不想重新解压和压缩。

向压缩文件中删除文件:
[[email protected] src]# zip nginx.zip -d nginx-1.6.2.tar.gz 
deleting: nginx-1.6.2.tar.gz
[[email protected] src]# unzip -v nginx.zip |grep nginx-1.6.2.tar.gz 
发现没有该文件存在了
向压缩文件中添加文件:
[[email protected] src]# zip -m nginx.zip nginx-1.6.2.tar.gz 
  adding: nginx-1.6.2.tar.gz (deflated 0%)
[[email protected] src]# unzip -v nginx.zip |grep nginx-1.6.2.tar.gz
  804164  Defl:N   804176   0% 06-22-2016 01:17 c721c245  nginx-1.6.2.tar.gz
时间: 2024-10-07 01:09:20

Linux下常用的压缩工具总结(gzip/tar/bzip2/zip)的相关文章

Linux下压缩与解压命令tar

tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用

Linux Shell常用技巧(六) sort uniq tar split

Linux Shell常用技巧(六) sort uniq tar split 十二.   行的排序命令sort:   1.  sort命令行选项: 选项 描述 -t 字段之间的分隔符 -f 基于字符排序时忽略大小写 -k 定义排序的域字段,或者是基于域字段的部分数据进行排序 -m 将已排序的输入文件,合并为一个排序后的输出数据流 -n 以整数类型比较字段 -o outfile 将输出写到指定的文件 -r 倒置排序的顺序为由大到小,正常排序为由小到大 -u 只有唯一的记录,丢弃所有具有相同键值的记

Linux 下常用解压命令(转载)

Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress file.Z3.以.gz为扩展名的文件:#gunzip file.gz4.以.bz2为扩展名的文件:#bunzip2 file.bz25.以.tar.Z为扩展名的文件:#tar xvZf file.tar.Z或 #compress -dc file.tar.Z | tar xvf -linux下怎么解后

Linux下的打包与压缩和tar命令!

本文介绍了linux下的打包压缩程序tar.gzip.gunzip.bzip2.bunzip2. compress.uncompress.zip.unzip.rar.unrar程序,以及如何使用它们对.tar..gz..tar.gz.. tgz..bz2..tar.bz2..Z..tar.Z..zip..rar这10种压缩文件进行操作. 在Windows下最常见的压缩文件就只有两种,一是.zip,另一个是.rar.而在linux下有它有.gz..tar.gz.tgz.bz2..Z压缩文件,当然.

linux下常用命令备忘

转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删除退格键,按住CTL键同时按delete Linux搜索 # find / -name "xxx.conf" 查看linux是32位还是64位的命令 #file /sbin/init #getconf LONG_BIT #getconf -a 在Linux和Windows下都可以用nslo

二十七、Linux下常用的shell命令记录

本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令.但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会持续更新. 说明,我是在一个Centos 6.4 64位的虚拟机系统进行测试.本文介绍的命令都会在此Centos下运行验证(也有部分命令会在我的suse/ubuntu系统里测试的,会做特明说明),但运行结果就不再列出了. 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /pro

linux下常用的截图、录屏工具

录屏: 在linux下常用的录屏工具有5种,可以baidu或者google下喔,我选用的是recordMydesktop,使用非常方便,用时注意先把每秒桢数调高,否则效果必然很差. 在ubuntu下可以输入一下命令直接安装: DebianLINUX 的用户可以用命令"sudo apt-get install recordmydesktop gtk-recordmydesktop"安装该软件,其他用户 则需到以下网站下载http://sourceforge.net/projects/re

Linux下常用的系统性能查看分析工具

Linux中,很多很全面显示系统当前运行状态,负载,I/O等信息的工具,帮助管理员实时了解系统运行动态,以及排除故障. ps命令:显示进程状态,快照方式显示. 进程分为两类:一类是用户通过终端启动的进程,一类是与终端无关的进程,多为守护进程. ps命令支持两种风格的命令:SysV风格 BDS风格.带横线的是SysV风格. ps命令选项:     a  :与终端有关的进程     x  : 与终端无关的进程     u  : 显示是哪个用户启动的       -e : 显示所有进程     -f 

Linux下常用安全策略如何设置?

本文和大家分享的主要是linux下常用安全策略设置的一些方法,一起来看看吧,希望对大家学习linux有所帮助. 安全第一"对于linux管理界乃至计算机也都是一个首要考虑的问题.加密的安全性依赖于密码本身而非算法!而且,此处说到的安全是指数据的完整性,由此,数据的认证安全和完整性高于数据的私密安全,也就是说数据发送者的不确定性以及数据的完整性得不到保证的话,数据的私密性当无从谈起! 1. 禁止系统响应任何从外部/内部来的ping请求攻击者一般首先通过ping命令检测此主机或者IP是否处于活动状态