Linux文件打包与压缩
文章目录
- 1. 什么是打包压缩?
- 2. 为什么使⽤压缩包 ?
- 3.为什么要打包?
- 4. 不同系统的压缩格式互通
- 5. Linux下常见的压缩包类型
- 6. gzip
- 7. bzip2
- 8.zip
- 9. 文件或目录打包压缩 tar
- 10.拓展 date
1. 什么是打包压缩?
打包压缩指的是将多个文件和目录合并为⼀个特殊文件然后将该特殊文件进⾏压缩最终得到⼀个压缩包
2. 为什么使⽤压缩包 ?
减少占用的体积
加快网络的传输
3.为什么要打包?
单个文件可以压缩,但是一个文件夹不能直接压缩,需要先打包成一个特殊文件在压缩
4. 不同系统的压缩格式互通
- 在 windows 系统下,我们接触最多的压缩格式是 rar 或 zip
- 在 Linux 系统上使用最多的压缩格式是 zip 和 tar.gz
- 在 Linux 上的压缩格式放在 windows 系统下都是可以正常打开的所以一般 Windows 和 Linux 互通通常选择 zip 格式。
- 值得注意的是 Linux 不支持 Windows下的 RAR 格式的压缩文件
- windows linux macos 同时支持 zip
- tar.gz 属于linux系统特有一种格式;windows扔然可以识别并解压
5. Linux下常见的压缩包类型
格式 | 压缩工具 |
---|---|
.zip | zip压缩工具 |
.gz | gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.bz2 | bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.tar.gz | 先使用tar命令归档打包,然后使用gzip压缩 |
.tar.bz2 | 先使用tar命令归档打包,然后使用bzip2压缩 |
6. gzip
gzip 仅能压缩文件,并且打包后会删除源文件
[root@localhost ~]# yum install gzip -y
[root@localhost ~]# dd if=/dev/zero of=./file bs=100M count=1 # 创建一个file文件
压缩
[root@localhost ~]# gzip file
[root@localhost ~]# ll # 查看,发现已经删除了源文件生成了*.gz文件
total 100
-rw-r--r--. 1 root root 101796 Jul 28 17:36 file.gz
[root@localhost ~]# du -sh file.gz
100K file.gz
[root@localhost ~]#
解压 gzip -d 压缩包
[root@localhost ~]# gzip -d file.gz
[root@localhost ~]# ll
total 102400
-rw-r--r--. 1 root root 104857600 Jul 28 17:36 file
[root@localhost ~]# du -sh file
100M file
[root@localhost ~]#
gzip 应用场景:
当需要让某个配置文件不生效时,且又不想删除
使默认的所有yum源不生效,可以删除、移走,也可以把它们都压缩
[root@localhost ~]# gzip /etc/yum.repos.d/*.repo
在不解压的情况下查看压缩包内容
zcat 压缩包名
[root@localhost ~]# zcat xxx.gz
7. bzip2
[root@localhost ~]# yum install bzip2 -y
用法与gzip一模一样
压缩 bzip2 文件名
解压 bzip2 -d 压缩包
不解压的情况下看 压缩包内容 bzcat 压缩包
8.zip
使用 zip 命令可以对文件或文件夹进行压缩打包,解压则需要使用 unzip 命令
默认最小化安装的操作系统,没有 zip 和 unzip 工具,所以需要安装
[root@localhost ~]# yum install zip unzip -y
- 压缩文件
语法格式:zip xxx.zip 文件路径 文件路径2
解释 xxx.zip 是压缩后的包名 ,一般都以.zip结尾。 可以同时打包多个文件
[root@localhost ~]# zip file.zip file adding: file (deflated 100%)
[root@localhost ~]# ll
total 102500
-rw-r--r--. 1 root root 104857600 Jul 28 17:36 file
-rw-r--r--. 1 root root 101931 Jul 28 18:01 file.zip
[root@localhost ~]#
打包压缩目录
语法 :zip -r xxx.zip 目录1 目录2
-r 表示递归打包,打包目录必须要跟上-r[root@localhost ~]# zip -r tmp.zip /tmp
解压:unzip
[root@localhost ~]# unzip tmp.zip # 默认解压到当前目录
解压到指定目录 -d
[root@localhost ~]# unzip tmp.zip -d /opt
不解压查看内容 -l
[root@localhost ~]# unzip -l tmp.zip
检查压缩包是否被破坏
unzip -t
9. 文件或目录打包压缩 tar
语法: tar [-zjxcvfpP] filename
-c --create创建新的文档
-v --verbose 显示详细的tar处理的文件信息
-f --file 要操作的文件名
-x --extract, --get 解压文件
-z --gzip, --gunzip, --ungzip 通过 gzip 来进行归档压缩
-j --bzip2 通过 bzip2 来归档压缩文件
-t --list 表示查看文件,查看文件中的文件内容
-C --directory=DIR 解压文件至指定的目录
-r --append 表示增加文件,把要增加的文件追加在压缩文件的末尾
-u --update 仅将较新的文件附加到存档中
-d --diff, --compare比较存档与当前文件的不同之处;--delete从存档中删除
-P 在打包过程中,取消移除根目录说明(默认打包如果不加-P会频繁提示)
-X 排除不需要的文件
--remove-files 压缩后删除原文件
--exclude 排除不需要压缩的目录或者文件
常见打包压缩组合命令
注意,一般推荐使用相对路径打包压缩,打包/ 下的目录,先切换到/ 下,然后使用相对路径,避免提示移除/ 的提醒。否则可以用-P 忽略提醒
例1:将/etc/passwd压缩到/tmp/passwd.tar.gz
[root@localhost /]# tar czf /tmp/passwd.tar.gz etc/passwd例2:将/etc下,所有的普通文件打包成etc.tar.gz
[root@localhost tmp]# find /etc/ -type f -exec tar -czPvf etc.tar.gz {} \;
或:
[root@localhost /]# tar czf /tmp/etc.tar.gz $(find etc -type f)例3:将/etc/passwd压缩到/tmp/passwd.tar.bz2
[root@localhost /]# tar cjf /tmp/passwd.tar.bz2 etc/passwd例4:将/etc下,所有的普通文件打包成etc.tar.bz2
[root@localhost /]# find /etc/ -type f -exec tar -cjPf etc.tar.bz2 {} \;例5:将第三题中的压缩包解压到当前目录下
[root@localhost tmp]# tar -xf etc.tar.gz 例6:将etc.tar.gz解压到/tmp/test/目录下
[root@localhost etc]# tar -xf etc.tar.gz -C /tmp/test/
排除文件,并打包压缩
排除单个文件
[root@localhost /]# tar czf etc.tar.gz --exclude=etc/services etc/
排除多个文件
[root@localhost /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
将需要排除的文件写入文件中
# 指定需要排除的文件列表, 最后进行打包压缩
[root@localhost /]# tar czfX etc.tar.gz paichu.list etc/
[root@localhost /]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
查看文件不解压
[root@localhost /]# tar tf test.tar.gz
10.拓展 date
打包压缩通常用于备份文件,文件的名字必须见名知意且应该带上时间、主机名之类
时间命令date
#选项
-d #根据你的描述显示日期
[root@localhost /]# date -d "2021-10-12"-s #修改日期
%H #小时,24小时制(00~23)
%M #分钟(00~59)
%s #从1970年1月1日00:00:00到目前经历的秒数
%S #显示秒(00~59)
%T #显示时间,24小时制(hh:mm:ss)
%d #一个月的第几天(01~31)
%j #一年的第几天(001~366)
%m #月份(01~12)
%w #一个星期的第几天(0代表星期天)
%W #一年的第几个星期(00~53,星期一为第一天)
%y #年的最后两个数字(1999则是99)
%Y #年,实际
%F #显示日期(%Y-%m-%d)
[root@localhost ~]# date
Wed Jul 28 19:55:48 CST 2021
[root@localhost ~]# date +%F
2021-07-28
[root@localhost ~]# date +%Y-%m-%d
2021-07-28
[root@localhost ~]# date +%y-%m-%d
21-07-28
[root@localhost ~]# date +%T
19:56:47
[root@localhost ~]# date +%H:%M:%S
19:57:00
[root@localhost ~]# date +%w
3
[root@localhost ~]# date +%s
1627473448
[root@localhost ~]# date +%d
28
[root@localhost ~]# date +%W
30
[root@localhost ~]# date +%j
209
[root@localhost ~]# date -d "-1 day" +%F
2021-07-27
[root@localhost ~]# date -d "1 day" +%F
2021-07-29
[root@localhost ~]# date -d "+1 day" +%F
2021-07-29
[root@localhost ~]# date -d "-3 month" +%F
2021-04-28
[root@localhost ~]# date -d "+3 years" +%F
2024-07-28
[root@localhost ~]# date -d "+3 hours" +%F
2021-07-28
[root@localhost ~]# date -d "+3 hours" +%T
22:59:49
[root@localhost ~]# date -d "+3 hours" +%F_%T
2021-07-28_23:00:13
[root@localhost ~]# date -s 20201111
Wed Nov 11 00:00:00 CST 2020
[root@localhost ~]# date
Wed Nov 11 00:00:04 CST 2020
[root@localhost ~]# date -s 11:11:11
Wed Nov 11 11:11:11 CST 2020
[root@localhost ~]# date -s "20201111 11:11:11"
Wed Nov 11 11:11:11 CST 2020
[root@localhost ~]#
备份:
[root@localhost ~]# tar czvf `date +%F`_bak.tar.gz /etc
[root@localhost ~]# tar czvf `date +%F_%H_%M_%S`_bak.tar.gz /etc # 如果带有时分秒,不要用冒号分隔,因为文件名的命名里不能带有冒号
Linux文件打包与压缩相关推荐
- Linux——文件打包与压缩
Linux 下常见常用的压缩包文件格式有*.zip,*.rar,*.7z*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*tar.bz2等后缀的压缩文件 文件后缀名 说 ...
- Linux文件打包及压缩、解包及解压
目录 前言 什么是压缩? tar的介绍与使用 简介 打包压缩文件 打包文件(不压缩) gzip压缩类型压缩文件 bzip压缩类型压缩文件 xzip压缩类型压缩文件 解包解压文件 简介 解压缩(解压到当 ...
- linux tar zcxf,tar/gzip/zip文件打包、压缩命令
一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...
- Linux新手上路(六):文件打包和解压缩
1.概念讲解 在讲 Linux 上的压缩工具之前,有必要先了解一下常见常用的压缩包文件格式.在 Windows 上最常见的不外乎这两种 .zip,.7z 后缀的压缩文件.而在 Linux 上面常见的格 ...
- linux中如何压缩单个文件大小,Linux 将文件打包、压缩并分割成指定大小
打包文件: tar -cvf .tar 分割文件: split -b 3G -d -a .tar .tar. //使用split命令,-b 3G 表示设置每个分割包的大小,单位还是可以k // -d ...
- Linux 文件打包压缩常用命令(笔记,搜录自网络和文档)
Linux 文件打包压缩常用命令 zip 老了一些,但是所有系统都支持(.zip). 格式 zip 压缩后的文件名 要被压缩的文件 参数 参数 -1 压缩 ...
- system.img解包打包工具_好程序员云计算学习路线分享文件打包及压缩
好程序员云计算学习路线分享文件打包及压缩 好程序员 建议针对目录 Demo: 复制未打包的文件到远程主机 [root@yangs ~]# du -sh /etc 39M /etc [root@yang ...
- 如何将文件打包、压缩并分割成制定大小?
如何将文件打包.压缩并分割成制定大小? (如何在linux下实现Windows中winrar和winzip等压缩软件所提供的打包压缩分割功能) 将大文件或目录打包.压缩并分割成制定大小的文件,这在将数 ...
- Linux 下文件打包和压缩
在 Windows 下我们通常会用好压或者是 Winrar 来进行压缩文件,一般没有打包的说法.在 Linux 下却不太一样,我们可以利用一些命令完成对文件的打包和压缩.这篇文章介绍 ta ...
- EduCoder Linux之文件打包和解压缩
本实训主要讲解Linux中对文件/目录压缩和解压缩操作. 随着多媒体.视频图象.文档映象等技术的出现,数据压缩成了一个重要研究点.数据压缩基本上是挤压数据使得它占用更少的磁盘存储空间和更短的传输时间. ...
最新文章
- SQL Server ltrim(rtrim()) 去不掉空格
- FPGA之道(76)静态时序分析(二)一道时序分析的例题
- phpstudy免费安全检测服务_Phpstudy联合各大安全厂商为用户提供免费安全检测服务...
- Blink 有何特别之处?菜鸟供应链场景最佳实践
- CentOS安装图文教程
- 路由删除命令_清除思科路由器配置信息的两种方法
- Jmeter接口测试实例图文示例
- 开源方案搭建可离线的精美矢量切片地图服务-6.Mapbox之.pbf字体库
- Head First 设计模式 --4 工厂模式 抽象工厂模式
- namenode无法启动_大数据系列教程003-hadoop伪分布式环境搭建步骤11-启动与验证环境...
- HTML鼠标移到a上面让a变色
- TI - MCU - MSP430使用指南1 - MSP430简介及选型指南
- googleseo只做内容不做外链行不行?(e6zzseo)
- 两计算机网线连接打印机共享打印机共享打印机,打印机、资源共享、协同工作、一根网线连接两电脑的方...
- 战舰少女r服务器维修,战舰少女r修理时间怎么计算?舰船受损维修时间公式分析[多图]...
- SpringCloud之蓝绿部署
- PE 格式详解与试验
- 【LeetCode】127. Word Ladder 解题报告(Python)
- Python-读取并显示图片
- 明华读卡器 java_Java调用明华RF读写器DLL文件过程解析