1 压缩

gzip命令

options:

-c  数据流重定向,可以定位为文件

-r  递归压缩,即深入子目录

-v  显示姓名和压缩比等冗余信息

-d  解压缩

-#  加上的数字表示压缩等级,越高表示压缩比越高,但更慢

①做了一个很简单的实验

[root@mail tmp]# ll -h
total 128K
-rw-r--r--. 1 root root 128K Jun 27 03:00 test
[root@mail tmp]# gzip -v -9 test
test:    99.9% -- replaced with test.gz
[root@mail tmp]# ll -h
total 4.0K
-rw-r--r--. 1 root root 166 Jun 27 03:00 test.gz
[root@mail tmp]# gzip -d test.gz
[root@mail tmp]# gzip -v -1 test
test:    99.6% -- replaced with test.gz

②如何保留原文件?

一种方案我觉得很好用,上面的-c命令

[root@mail tmp]# gzip -c test > test.gz
[root@mail tmp]# ll
total 132
-rw-r--r--. 1 root root 131072 Jun 27 03:00 test
-rw-r--r--. 1 root root    166 Jun 27 03:03 test.gz

④利用zcat可以直接读压缩文件,前提是cat可以读取原文件,所以叫zcat ==

[root@mail tmp]# zcat test1.sh.gz
this is a test.

bzip2命令

据说比zip有更好的压缩比,命令行使用,建议使用差不多的子选项

做了个简单小实验

[root@mail tmp]# gzip -9 -v -c test >test.gz
test:    99.9%
[root@mail tmp]# bzip2 -9 -v -c test >test.bz2test:    2978.909:1,  0.003 bits/byte, 99.97% saved, 131072 in, 44 out.

果不其然,其他用法相似,不建议继续尝试了

bzcat也一样

[root@mail tmp]# bzcat test1.sh.bz2
this is a test.

下面看看如何打包和压缩解压缩包吧

tar命令

网上有一段讲的很好,这里摘下来

参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!这样对配置文件很方便,一般备份/etc最好使用-p

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

-C 目录   指定解压的目录

基本上常用的都已经说明

注意如下几点

1 tar实用的时候考虑,一般当然是压缩的,那么考虑是用zip还是bzip,zip就使用z,bzip用j,解压同理

2 -f后面接文件,所以f紧接着要创建的压缩文件的,最后接上要压缩的源文件

下面继续做咱的小实验

①打包tmp的除了test的所有文件到/root/backup/目录下,使用bzip2压缩

[root@mail tmp]# tar -jcvf /root/backup/tmp.bz2  /tmp --exclude test
tar: Removing leading `/' from member names
/tmp/
/tmp/test.bz2
/tmp/test.gz
/tmp/test1.sh.bz2

②此时要求保留文件属性,把/etc/my.cnf压缩至/root/backup/目录下,名称问my.bak

[root@mail tmp]# tar -jcvpf /root/backup/my.bak /etc/my.cnf
tar: Removing leading `/' from member names
/etc/my.cnf

③在root家目录下,把晚于2015年7月11日的文件备份,命名为2015.7.11.bak

[root@mail ~]# tar -jcvp -f /root/backup/2015.7.11.bak  /root -N 20150711

④在③压缩文件中添加一个文件/tmp/test,并查看

[root@mail ~]# tar -rf  /root/backup/2015.7.11.bak.tar  /tmp/test
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now

追加了半天,发现这个错误,才意识到,是我已经压缩了才这样,所以最好的办法是重新压缩,当然对于一个tar包添加再压缩也可以

[root@mail ~]# tar -jcvpf  /root/backup/2015.7.11.bak  /tmp/test  /root -N 20150711
[root@mail ~]# tar -tvf /root/backup/2015.7.11.bak

或者这样

[root@mail ~]# tar -cf /root/backup/2015.7.11.bak /root
[root@mail ~]# tar -rvf /root/backup/2015.7.11.bak /tmp/testtar: Removing leading `/' from member names
/tmp/test
[root@mail ~]# tar -tvf /root/backup/2015.7.11.bak
...
-rw-r--r-- root/root    131072 2015-06-27 04:27 tmp/test

总之,其他的还是自己以后慢慢使用吧,当然,前面也可以不适用-,如tar xf,这是另一种风格,巨日我也忘了

转载于:https://blog.51cto.com/qixue/1673917

linux下压缩工具总结与使用(参考私房菜)相关推荐

  1. 红帽企业版Linux成为Linux下的.NET Core的参考平台

    微软和红帽声明将在红帽企业版Linux运行的.NET纳入官方支持.经两家公司透露,"红帽企业级Linux将成为Linux下的.NET Core主要参考操作系统". \\ 来自红帽资 ...

  2. Linux下压缩工具gzip和归档工具tar及其实战shell应用

    Linux下压缩工具gzip和归档工具tar及其实战shell应用       第一章:gzip的使用技巧 gzip [option]... file... -d: 解压缩,相当于gunzip; -# ...

  3. linux gzip和tar一起用,Linux下压缩工具gzip和归档工具tar及其实战shell应用

    Linux下压缩工具gzip和归档工具tar及其实战shell应用 第一章:gzip的使用技巧 gzip [option]... file... -d: 解压缩,相当于gunzip; -#: 指定压缩 ...

  4. Linux下用户态mktime实现参考

    1.背景 继上周<Linux下mktime耗时测试>,本次通过参考glibc.内核源码进行实验 2.接口说明 时间转换接口,主要用于所指向的结构转换为自 1970 年1月1日以来持续时间的 ...

  5. Linux 磁盘与文件系统管理(鸟哥私房菜)

    本文来自:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php   第八章.Linux 磁盘与文件系统管理 系统管理员很重要的任务之一就 ...

  6. linux下socket编程(基础参考)

    什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程, ...

  7. linux下ipvsadm命令,ipvsadm命令参考

    对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望 对ipvsadm 的使用者有一定的帮助. 为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍 一下: ...

  8. linux bzip2 压缩目录,Linux下压缩工具的区分-gzip,bzip2,tar

    总说明: gzip,bzip2只能针对一个文件,而tar是打包没有压缩,可以对多个文件及目录,但tar有gzip及bzip2的压缩功能.bzip2是gzip的升级版,压缩比更高. winrar只能gz ...

  9. Linux下遍历指定目录的C++实现

    之前在 https://blog.csdn.net/fengbingchun/article/details/51474728 给出了在Windows遍历指定文件夹的C++实现,这里给出在Linux下 ...

最新文章

  1. 人工智能助力新材料研发
  2. 开发HTML5手机游戏的5个注意要点--手机开发前景-- 转
  3. Webpack4干货分享(二),使用loader处理scss,图片以及转换JS
  4. Django框架——查询集QuerySet
  5. MSSql ID自动增长删除数据重1开始
  6. 自动化审批决策树助你面试更上一层楼
  7. 未了(endless)(【CCF】NOI Online 能力测试2 入门组第一题 )
  8. HTML如何引入外部JS文件
  9. 固高运动控制卡跟随运动(Follow 运动模式)
  10. c51语言转换ASCII码,ASCII 码和十六进制数的转换 -51单片机
  11. 测试计算机性能的软件比较专业,用什么软件可以测试计算机的整体性能?
  12. 什么是视频封装格式和编码格式
  13. Python 生命游戏(tkinter版)
  14. Java工作流系统jflow从表功能介绍一
  15. DBUtils工具类
  16. 手机实名检测 API数据接口
  17. Linux驱动——ALSA
  18. 王阳明心学 之 心即理感悟
  19. WebSphere Message Broker(2)--WMB V8下载、安装
  20. 采用74HC595驱动数码管实验

热门文章

  1. SUSE LINUX下文件系统变只读的问题解决
  2. gcc:undefined reference to 'std::cout'
  3. 【轉】Android编程之SparseArrayE详解
  4. 在WebAPI中自动创建Controller
  5. Ubuntu 安装mysql和简单操作
  6. [转] JSON转换
  7. [转载]eclipse的远程调试功能配置
  8. TCP/IP(四) —— TCP可靠传输的实现
  9. 访谈计算机操作管理协会(Afcom)首席执行官Jill Eckhaus:数据中心问题出现在何处?...
  10. 菜鸟学算法一基础知识篇