gzip:
1)只能针对普通文件进行压缩,对文件夹、符号链接无效。
2)如果想对多个文件一起压缩并打包,gzip是无法办到的,需要结合tar进行
<code>[root@mysql-master databackup]</code><code># ll</code>
<code>总用量 32</code>
<code>drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29</code>
<code>drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00</code>
<code>drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53</code>
<code>drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43</code>
<code>drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02</code>
<code>-rw-r--r-- 1 root root 2522 10月 19 21:17 </code><code>passwd</code>
<code>drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup</code>
<code>drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog</code>
使用“-c”选项,可以保留原有文件
<code>[root@mysql-master databackup]</code><code># gzip -c passwd >passwd.gz</code>
<code>总用量 36</code>
<code>-rw-r--r-- 1 root root 1006 10月 19 21:18 </code><code>passwd</code><code>.gz</code>
直接使用“gzip+文件”的压缩方式,原始文件不会被保留
<code>[root@mysql-master databackup]</code><code># cp /etc/shadow .</code>
<code>总用量 40</code>
<code>---------- 1 root root 1393 10月 19 21:19 shadow</code>
<code>[root@mysql-master databackup]</code><code># gzip shadow </code>
<code>---------- 1 root root 536 10月 19 21:19 shadow.gz</code>
使用“gzip -d 压缩文件”,进行解压
<code>[root@mysql-master databackup]</code><code># gzip -d shadow.gz</code>
<code>如上,我们发现原有的shadow文件已经出来了</code>
gzip有九个压缩级别1-9(数字越大,压缩强度越高,速度对应的也会慢些),默认级别为6
# gzip -1 test.log
tar:
<code>压缩</code><code>/etc</code><code>文件:</code>
<code>[root@mysql-master databackup]</code><code># tar -czvf etc.tar.gz /etc</code>
<code>[root@mysql-master databackup]</code><code># du -sh etc.tar.gz </code>
<code>12Metc.</code><code>tar</code><code>.gz</code>
<code>解压缩,并进行查看</code>
<code>[root@mysql-master databackup]</code><code># tar -xf etc.tar.gz</code>
<code>tar</code><code>常用的几个选项:</code>
<code>-c选项:表示要进行打包动作</code>
<code>-x选项:表示要进行拆包动作</code>
<code>-z选项:表示用</code><code>gzip</code><code>进行压缩或解压缩</code>
<code>-</code><code>v</code><code>选项:表示在拆包过程中直接整个过程,把已拆包的文件显示出来</code>
<code>-f选项:表示指定要拆包的文件</code>
<code>-t选项:列出打包的内容,适用于不想解压,但想查看压缩包内容的情况</code>
<code>[root@mysql-master databackup]</code><code># du -sh src.tar.gz </code>
<code>607Msrc.</code><code>tar</code><code>.gz</code>
<code>[root@mysql-master databackup]</code><code># tar -ztvf src.tar.gz |less</code>
bzip2:
bzip2用于压缩文件,bunzip2用于解压文件
但是我们查看链接文件,会发现,其实bunzip2其实就是bzip2的一个链接
<code>[root@mysql-master ~]</code><code># ls -l /usr/bin/bunzip2 </code>
<code>lrwxrwxrwx. 1 root root 5 7月 5 23:42 </code><code>/usr/bin/bunzip2</code> <code>-> </code><code>bzip2</code>
<code>[root@mysql-master ~]</code><code># bzip2 install.log</code>
<code>[root@mysql-master ~]</code><code># ls</code>
<code>anaconda-ks.cfg index.html </code><code>install</code><code>.log.syslog M_pass.log R_Server.log 模板 图片 下载 桌面</code>
<code>changehostpassword.sh </code><code>install</code><code>.log.bz2 ip_list.txt R_PWD.txt 公共的 视频 文档 音乐</code>
<code>[root@mysql-master ~]</code><code># file install.log.bz2 </code>
<code>install</code><code>.log.bz2: </code><code>bzip2</code> <code>compressed data, block size = 900k</code>
<code>[root@mysql-master ~]</code><code># bunzip2 -d install.log.bz2 </code>
<code>anaconda-ks.cfg index.html </code><code>install</code><code>.log.syslog M_pass.log R_Server.log 模板 图片 下载 桌面</code>
<code>changehostpassword.sh </code><code>install</code><code>.log ip_list.txt R_PWD.txt 公共的 视频 文档 音乐</code>
zip:
与gzip/bzip2类似,zip用于文件压缩,unzip命令用于解压缩,zip支持对文件和文件夹的压缩,-r表示递归
注意:zip在压缩文件的时候,会保留原文件
<code>[root@mysql-master ~]</code><code># cd /usr/local/src/</code>
<code>[root@mysql-master src]</code><code># ls</code>
<code>cmake-2.8.8 libiconv-1.14.</code><code>tar</code><code>.gz mcrypt-2.6.8 mhash-0.9.9.9.</code><code>tar</code><code>.gz mysql-5.5.32.</code><code>tar</code><code>.gz php-5.3.27</code>
<code>cmake-2.8.8.</code><code>tar</code><code>.gz libmcrypt-2.5.8 mcrypt-2.6.8.</code><code>tar</code><code>.gz mysql-5.5.32 nginx-1.6.2 php-5.3.27.</code><code>tar</code><code>.gz</code>
<code>libiconv-1.14 libmcrypt-2.5.8.</code><code>tar</code><code>.gz mhash-0.9.9.9 mysql-5.5.32-linux2.6-x86_64.</code><code>tar</code><code>.gz nginx-1.6.2.</code><code>tar</code><code>.gz</code>
<code>[root@mysql-master src]</code><code># zip -r nginx.zip nginx-1.6.2.tar.gz nginx-1.6.2/</code>
<code>cmake-2.8.8 libiconv-1.14.</code><code>tar</code><code>.gz mcrypt-2.6.8 mhash-0.9.9.9.</code><code>tar</code><code>.gz mysql-5.5.32.</code><code>tar</code><code>.gz nginx.zip</code>
<code>cmake-2.8.8.</code><code>tar</code><code>.gz libmcrypt-2.5.8 mcrypt-2.6.8.</code><code>tar</code><code>.gz mysql-5.5.32 nginx-1.6.2 php-5.3.27</code>
<code>libiconv-1.14 libmcrypt-2.5.8.</code><code>tar</code><code>.gz mhash-0.9.9.9 mysql-5.5.32-linux2.6-x86_64.</code><code>tar</code><code>.gz nginx-1.6.2.</code><code>tar</code><code>.gz php-5.3.27.</code><code>tar</code><code>.gz</code>
<code>[root@mysql-master src]</code><code># du -sh nginx.zip </code>
<code>7.7Mnginx.zip</code>
unzip结合-d参数,解压到指定文件夹
<code>[root@mysql-master src]</code><code># mkdir -p /mysqlbackup</code>
<code>[root@mysql-master src]</code><code># unzip -d /mysqlbackup nginx.zip </code>
<code>[root@mysql-master src]</code><code># ls -l /mysqlbackup/</code>
<code>总用量 792</code>
<code>drwxr-xr-x 9 root root 4096 9月 16 2014 nginx-1.6.2</code>
<code>-rw-r--r-- 1 root root 804164 6月 22 01:17 nginx-1.6.2.</code><code>tar</code><code>.gz</code>
使用“unzip -v 压缩文件”的组合,不解压的情况下,来查看压缩文件中的内容
<code>[root@mysql-master src]</code><code># unzip -v nginx.zip </code>
<code>Archive: nginx.zip</code>
<code> </code><code>Length Method Size Cmpr Date Time CRC-32 Name</code>
<code>-------- ------ ------- ---- ---------- ----- -------- ----</code>
<code> </code><code>804164 Defl:N 804176 0% 06-22-2016 01:17 c721c245 nginx-1.6.2.</code><code>tar</code><code>.gz</code>
<code> </code><code>0 Stored 0 0% 09-16-2014 20:23 00000000 nginx-1.6.2/</code>
<code> </code><code>2369 Defl:N 732 69% 09-16-2014 20:23 85d03809 nginx-1.6.2</code><code>/configure</code>
<code> </code><code>0 Stored 0 0% 09-22-2016 15:46 00000000 nginx-1.6.2</code><code>/contrib/</code>
<code> </code><code>0 Stored 0 0% 09-16-2014 20:23 00000000 nginx-1.6.2</code><code>/contrib/vim/</code>
<code> </code><code>0 Stored 0 0% 09-22-2016 15:46 00000000 nginx-1.6.2</code><code>/contrib/vim/indent/</code>
<code> </code><code>250 Defl:N 165 34% 09-16-2014 20:23 87c1f91b nginx-1.6.2</code><code>/contrib/vim/indent/nginx</code><code>.vim</code>
<code> </code><code>0 Stored 0 0% 09-22-2016 15:46 00000000 nginx-1.6.2</code><code>/contrib/vim/ftdetect/</code>
<code> </code><code>198 Defl:N 79 60% 09-16-2014 20:23 68d244f2 nginx-1.6.2</code><code>/contrib/vim/ftdetect/nginx</code><code>.vim</code>
<code> </code><code>0 Stored 0 0% 09-16-2014 20:23 00000000 nginx-1.6.2</code><code>/contrib/vim/syntax/</code>
<code> </code><code>31641 Defl:N 5987 81% 09-16-2014 20:23 fe4d7202 nginx-1.6.2</code><code>/contrib/vim/syntax/nginx</code><code>.vim</code>
<code> </code><code>0 Stored 0 0% 09-22-2016 15:46 00000000 nginx-1.6.2</code><code>/contrib/unicode2nginx/</code>
使用“unzip -t 压缩文件”,验证压缩文件的完整性
<code>[root@mysql-master src]</code><code># unzip -t nginx.zip </code>
<code> </code><code>testing: nginx-1.6.2.</code><code>tar</code><code>.gz OK</code>
<code> </code><code>testing: nginx-1.6.2/ OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/configure</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/indent/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/indent/nginx</code><code>.vim OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/ftdetect/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/ftdetect/nginx</code><code>.vim OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/syntax/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/vim/syntax/nginx</code><code>.vim OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/unicode2nginx/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/contrib/unicode2nginx/koi-utf</code> <code>OK</code>
<code> </code><code>-------------------------------------------------------</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/Makefile</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/uwsgi_params</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/koi-utf</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/win-utf</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/mime</code><code>.types OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/fastcgi</code><code>.conf OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/koi-win</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/fastcgi_params</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/scgi_params</code> <code>OK</code>
<code> </code><code>testing: nginx-1.6.2</code><code>/conf/nginx</code><code>.conf OK</code>
<code>No errors detected </code><code>in</code> <code>compressed data of nginx.zip.</code>
zip的扩展:
当我们配置好压缩文件的时候,发现其中某个比较占空间的文件并不是我们想要的,并且,我们不想重新解压和压缩。
<code>向压缩文件中删除文件:</code>
<code>[root@mysql-master src]</code><code># zip nginx.zip -d nginx-1.6.2.tar.gz </code>
<code>deleting: nginx-1.6.2.</code><code>tar</code><code>.gz</code>
<code>[root@mysql-master src]</code><code># unzip -v nginx.zip |grep nginx-1.6.2.tar.gz </code>
<code>发现没有该文件存在了</code>
<code>向压缩文件中添加文件:</code>
<code>[root@mysql-master src]</code><code># zip -m nginx.zip nginx-1.6.2.tar.gz </code>
<code> </code><code>adding: nginx-1.6.2.</code><code>tar</code><code>.gz (deflated 0%)</code>
<code>[root@mysql-master src]</code><code># unzip -v nginx.zip |grep nginx-1.6.2.tar.gz</code>
本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1863756,如需转载请自行联系原作者