day15----linux文件管理之文件压缩

day15----文件的压缩与解压缩

1.什么是压缩

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

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

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

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

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

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

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

5.Linux gzip zip tar 工具的使用

1)gzip 打包与压缩仅对文件有效

  • gzip filename 压缩
  • gzip -d filename.gz 解包
  • zcat file 查看压缩包内文件的内容
    示例:
[root@oldboy--day01 ~]#yum install gzip -y   #安装gzip工具
[root@oldboy--day01 ~]# gzip 1.txt           #在当前目录下压缩文件1.txt
[root@oldboy--day01 ~]# zcat 1.txt.gz        #查看压缩文件1.txtx.gz
[root@oldboy--day01 ~]# gzip -d 1.txt.gz     #解压gzip的压缩包

使用场景:当需要让某个文件快速关闭和快速启用

2)Linux zip压缩工具使用

  • 默认情况下Linux没有zip和unzip工具,需要自行安装
[root@oldboy--day01 ~]# yum install zip unzip -y #安装zip和unzip工具
  • 压缩文件为zip压缩包
[root@oldboy--day01 ~]# zip 2.txt.zip 2.txt    #打包方式为:zip 打包后的文件名 需要打包的文件
[root@oldboy--day01 ~]# unzip -l 2.txt.zip     #查看打包后的文件内容
  • 压缩目录为zip压缩包
[root@oldboy--day01 ~]# zip -r dir.zip dir/   #打包目录为压缩文件包压缩包名称为dir.zip
  • 查看zip压缩包是否完整
[root@oldboy--day01 ~]# zip -T filename.zip   #查看压缩包文件是否打包完整
  • 不解压压缩查看压缩包中的内容
[root@oldboy--day01 ~]# unzip -l 2.txt.zip #查看压缩后的文件知是完整
[root@oldboy--day01 ~]# unzip -t 2.txt.zip #检测文件打包后是否打包成功
  • 解压zip文件包,默认解压至当前目录
[root@oldboy--day01 ~]# unzip 2.txt.zip       #解压文件,默认解压至当前目录
  • 解压zip内容至/opt目录
[root@oldboy--day01 ~]# unzip 2.txt.zip -d  /opt/         #解压2.txt.zip至/opt/目录下
  • 打包file 与dir目录至/tmp/test.zip
[root@oldboy--day01 ~]# zip -r /tmp/test.zip file dir/ #打包file文件与目录dir
  • 解压缩上一步的压缩包
[root@oldboy--day01 ~]# unzip /tmp/test.zip           #解压文件至当前文件夹
[root@oldboy--day01 ~]# unzip /tmp/test.zip  -d /opt/ #解压文件到指定文件夹

3)Linux tar工具的使用
tar是Linux下最常用的压缩与解压工具,支持文件和目录归档

语法:tar [-zjxcvfpP] filename
c     #创建新的归档文件
x     #对归档文件进行解压
f     #指定包文件名,多参数时f写最后
t     #列出归档文件里的文件列表
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  #自动选择解压模式

示例:

  1. 将文件或目录进行打包压缩
  • 文件的打包
[root@oldboy--day01 ~]# tar czf test.tar.gz test/ test2  #以gzip方式压缩test与test2这两个目录
[root@oldboy--day01 ~]# tar cjf test.bz2 dir.txt dir/    #以bz2方式压缩dir.txt 文件与dir目录
  • 查看包内文件与目录
[root@oldboy--day01 ~]# tar tf test.tar.gz  #不解压查看压缩包内容
[root@oldboy--day01 ~]# tar tf test.tar.bz2  #不解压查看压缩包内容
[root@oldboy--day01 ~]# tar tf test.tar.xz  #不解压查看压缩包内容
  • 解压
[root@oldboy--day01 ~]# tar xf test.tar.gz #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.bz2 #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.xz  #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.gz -C /tmp/  #解压至指定目录

2.打包/tmp/下所有文件
方式一:

[root@oldboy--day01 ~]# find tmp/ -type f |xargs tar czf tmp.tar.gz  #打包/目录下的所有文件打包格式为tar.gz

方式二:

[root@oldboy--day01 ~]# tar czf tmp.tar.gz $(find /tmp/ -type f)  #打包/目录下的所有文件打包格式为tar.gz

3.打包链接文件,打包链接文件的真实文件

[root@oldboy--day01 ~]# tar czf local.tar.gz weixin   #打包压缩微信软链接,压缩包文件名为local.tar.gz

4.排出操作

  • 排除单个:
[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/services   #排除/etc/services文件打包压缩其他文件
  • 排除多个:
[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd --exclude=etc/shadow      #排除/etc/passwd文件和shadow文件打包压缩其他文件

5.将需要排除的文件写入一个文件中

[root@oldboy--day01 ~]# cat shanchu.txt 
/etc/passwd
/etc/passwd-
/etc/security/opasswd
/etc/pam.d/passwd
[root@oldboy--day01 ~]# tar czXf shanchu.txt  etc.tar.gz /etc/    #压缩除文件中以外的其他文件

例题:
0.环境准备

[root@oldboy--day01 ~]# yum install mariadb-server
[root@oldboy--day01 ~]# systemctl start mariadb
[root@oldboy--day01 ~]# mkdir /backup

方法1.mysql备份及恢复

  • 打包/var/lid/mysql目录中的文件至/backup
[root@oldboy--day01 ~]# mkdir /var/lid/mysql -p
[root@oldboy--day01 ~]# tar cJf /backup/myspl.tar.xz /var/lid/mysql  #将/var/lid/mysql目录下的文件打包成tar.xz格式
tar: Removing leading `/' from member names
  • 解压文件至/目录
[root@oldboy--day01 ~]# tar xf /backup/myspl.tar.xz  -C /  #将压缩包文件解压至根目录下

方法2.mysql备份及恢复

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

推荐阅读更多精彩内容