Day14-压缩命令的学习(gzip、zip、tar)

Hyman's Road of Learning Linux.

1.什么是文件压缩?

  • 将多个文件或目录合并成为一个特殊的文件。

2.为什么要对文件进行压缩?

  • 减小文件的体积
  • 加快资源的传输
  • 节省网络的带宽

3.Windows的压缩包与Linux的压缩包能否互通?

  • windows: rar zip 其实支持很多类型的压缩
  • linux: zip tar.gz ....
  • windows与linux互通 建议使用: zip

4.Linux下压缩包有哪些常见的类型

格式 压缩工具
.zip zip压缩工具
.gz gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2 bzip2压缩工具,智能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz 先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2 先试用tar命令归档打包,然后使用bizp压缩

5.linux gzip 工具使用

*** gzip打包与压缩 ,仅对文件有效.***
gzip filename #打包
gzip -d filename.gz #解包
zcat filename.gz #查看包内文件的内容

  • 使用前先查看是否安装了gzip,没有用 yum install gzip -y 进行安装。
root@haoyu1[14:59:55]~# yum install gzip -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package gzip-1.5-10.el7.x86_64 already installed and latest version
Nothing to do
  • 对文件进行压缩 gzip filename
root@haoyu1[15:03:48]~# echo "hyman linux" > hyman.txt
root@haoyu1[15:03:51]~# gzip hyman.txt 
root@haoyu1[15:04:10]~# ll
total 4
-rw-r--r--. 1 root root 42 Aug 13 15:03 hyman.txt.gz
  • 查看gz压缩后的文件 zcat filename
root@haoyu1[15:04:12]~# zcat hyman.txt.gz 
hyman linux
  • 解压gzip的压缩包 gzip -d filename
root@haoyu1[15:05:26]~# gzip -d hyman.txt.gz 
root@haoyu1[15:07:00]~# ll
total 4
-rw-r--r--. 1 root root 12 Aug 13 15:03 hyman.txt
  • 使用场景:当需要让某个文件快速关闭和快速启用.
#/etc/yum.repos.d/目录下的repo文件,当我们不用的时候可以一条命令将它们关闭.
root@haoyu1[15:07:02]~# cd /etc/yum.repos.d/
root@haoyu1[15:15:37]/etc/yum.repos.d# ll
total 36
-rw-r--r--. 1 root root 2523 Jun 16  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  664 Jul 30 09:41 epel.repo
root@haoyu1[15:15:39]/etc/yum.repos.d# gzip *
root@haoyu1[15:16:25]/etc/yum.repos.d# ll
total 32
-rw-r--r--. 1 root root 601 Jun 16  2018 CentOS-Base.repo.gz
-rw-r--r--. 1 root root 735 Nov 23  2018 CentOS-CR.repo.gz
-rw-r--r--. 1 root root 254 Jul 30 09:41 epel.repo.gz
#当关闭的情况下也可以使用zcat命令查看文件的内容
root@haoyu1[15:17:52]/etc/yum.repos.d# zcat CentOS-Base.repo.gz 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#当我们需要开启的时候也可以使用gzip -d一条命令开启这些文件
root@haoyu1[15:16:27]/etc/yum.repos.d# gzip -d *
root@haoyu1[15:16:37]/etc/yum.repos.d# ll
total 36
-rw-r--r--. 1 root root 2523 Jun 16  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  664 Jul 30 09:41 epel.repo

6.linux zip 工具使用

  • 默认情况下没有zip和unzip工具,需要进行安装 yum install zip unzip -y
root@haoyu1[16:10:09]~# yum install zip unzip -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package zip-3.0-11.el7.x86_64 already installed and latest version
Package unzip-6.0-19.el7.x86_64 already installed and latest version
Nothing to do
  • 压缩文件为zip包 zip -r filename
root@haoyu1[16:11:20]~# mkdir hhaoyu
root@haoyu1[16:11:54]~# zip -r hhaoyu.zip hhaoyu/
  adding: hhaoyu/ (stored 0%)
root@haoyu1[16:12:14]~# ll
total 8
drwxr-xr-x. 2 root root   6 Aug 13 16:11 hhaoyu
-rw-r--r--. 1 root root 164 Aug 13 16:12 hhaoyu.zip
-rw-r--r--. 1 root root  12 Aug 13 15:03 hyman.txt
  • 查看zip压缩包是否是完整的 zip -T filename.zip
root@haoyu1[16:12:17]~# zip -T hhaoyu.zip 
test of hhaoyu.zip OK
  • 不解压压缩查看压缩包中的内容 unzip -l filename.zip
root@haoyu1[16:15:14]~# unzip -l hhaoyu.zip 
Archive:  hhaoyu.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  08-13-2019 16:15   hhaoyu/
---------                     -------
        0                     1 file
  • 检测文件是 否都ok unzip -t filename.zip
root@haoyu1[16:15:26]~# unzip -t hhaoyu.zip 
Archive:  hhaoyu.zip
    testing: hhaoyu/                  OK
No errors detected in compressed data of hhaoyu.zip.
  • 解压zip内容至/opt目录 unzip filename.zip -d /opt/
root@haoyu1[16:15:46]~# unzip hhaoyu.zip  -d /opt/
Archive:  hhaoyu.zip
   creating: /opt/hhaoyu/
  • 常用的zip命令
#打包 
zip -r /tmp/test.zip  file  dir/
#解包 
unzip tt.zip unzip tt.zip -d /opt

7.linux tar 工具使用

tar是linux下最常用的压缩与解压缩, 支持文件和目录的压缩归档

  • 语法:tar [-zjxcvfpP] filename
c 创建新的归档文件
x 对归档文件解包
t 列出归档文件里的文件列表
f 指定包文件名,多参数f写最后
z 使用gzip压缩归档后的文件(.tar.gz)
j 使用bzip2压缩归档后的文件(.tar.bz2)
J 使用xz压缩归档后的文件(.tar.xz)
c 指定解压目录位置
x 排除多个文件(写入需要排除的文件名称)
h 打包软链接
--exclude 在打包的时候写入需要排除文件或目录
  • 常用打包与压缩组合
cjf 打包tar.bz格式
cJf 打包tar.xz格式(很少使用)
zxf 解压tar.gz格式
jxf 解压tar.bz格式
czf 打包tar.gz格式(常用)
tf 查看压缩包内容
xf 自动选择解压模式(常用)
  • 将文件或目录进行打包压缩

    • 打包

      • 以gzip方式压缩
        root@haoyu1[16:34:17]~# tar czf hhaoyu.tar.gz hhaoyu/ hyman.txt
        
      • 以bz2方式压缩
        root@haoyu1[16:34:57]~# tar cjf hhaoyu.tar.bz2 hhaoyu/ hyman.txt
        
    • 查看包内容

      #.gz
      root@haoyu1[16:36:04]~# tar tf hhaoyu.tar.gz 
      hhaoyu/
      hhaoyu/123/
      hhaoyu/456/
      hyman.txt
      #.bz2
      root@haoyu1[16:36:04]~# tar tf hhaoyu.tar.bz2 
      #.xz
      root@haoyu1[16:36:04]~# tar tf hhaoyu.tar.xz 
      
    • 解压

      #.gz
      root@haoyu1[16:37:14]~# tar xf hhaoyu.tar.gz
      #.bz2
      root@haoyu1[16:37:14]~# tar xf hhaoyu.tar.bz2
      #.xz
      root@haoyu1[16:37:14]~# tar xf hhaoyu.tar.xz
      #解压至指定目录
      root@haoyu1[16:37:14]~# tar xf hhaoyu.tar.gz -C /tmp
      
    • 打包/tmp下所有文件

      root@haoyu1[16:43:32]~# find /tmp/ -type f | xargs tar czf tmp.tar.gz
      tar: Removing leading `/' from member names
      root@haoyu1[16:43:49]~# ll
      total 16
      -rw-r--r--. 1 root root 126 Aug 13 16:43 tmp.tar.gz
      
      #另一种方法
      tar czf tmp.tar.gz $(find /tmp/ -type f)
      
    • 打包链接文件,打包链接文件的真实文件

      root@haoyu1[16:46:07]~# tar czfh local.tar.gz  etc/rc.local
      
    • 排除操作

      #排除单个
      root@haoyu1[17:05:32]~# tar czf etc.tar.gz /etc/ --exclude=etc/services 
      #排除多个
      root@haoyu1[17:05:32]~# tar czf etc.tar.gz /etc/ --exclude=etc/passwd -exclude=etc/shadow
      
    • 将需要排除的文件写入文件中 然后进行排除

      root@haoyu1[17:16:53]~#  cat pc.txt 
      etc/gshadow 
      etc/gshadow
      etc/passwd 
      etc/passwd
      etc/shadowetc/shadow 
      etc/security/opasswd 
      etc/pam.d/passwd 
      root@haoyu1[17:16:53]~#  tar czXf pc.txt etc.tar.gz  
      /etc/
      
  • 练习

1.环境准备
root@haoyu1[17:19:12]~# yum install mariadb-server
root@haoyu1[17:20:08]~# systemctl start mariadb
root@haoyu1[17:20:32]~# mkdir /backup

案例1.mysql备份及恢复
root@haoyu1[17:20:43]~# tar cJk /backup/mysql.tar.xz /var/lib/mysql/
root@haoyu1[17:21:38]~# tar xf /backup/mysql.tar.xz -C /

案例2 mysql备份及恢复
root@haoyu1[17:22:36]~# cd /var/lib/mysql/
root@haoyu1[17:22:55]/var/lib/mysql# tar cJf /backup/mysql.tar.xz *
root@haoyu1[17:23:19]/var/lib/mysql# tar tf /backup/mysql.tar.xz
root@haoyu1[17:23:50]/var/lib/mysql# tar xf /backup/mysql.tar.xz -C /var/lib/mysql/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343