linux tar打包压缩解压命令学习

Linux系统中tar是最常用的打包工具,通过打包工具可以压缩/解压 比如常见的压缩包格式 如下:

  • tar 未压缩文件 只是做了一个打包而已
  • tar.gz 使用gzip算法格式压缩的压缩包
  • tar.bz2 bz2格式压缩包
  • tar.xz xz格式压缩
参数介绍

tar 的参数很多 列出几个比较常用的记录一下。

格式 tar -参数... 文件/目录

参数 含义
-c create创建文件
-C <目录> 指定解压位置
-x 提取解压文件
-t 列出压缩包中包含哪些文件,查看包中的内容
-z gzip格式压缩或解压
-Z 支持compress解压文件
-f<备份文件> 指定打包压缩的备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 支持bz2格式压缩或解压
-v 显示执行过程
-J 支持xz格式压缩或解压
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性
-P 使用文件名的绝对路径,不移除文件名称前的"/"号
演示

当前目录有一个1.5G的SQL文件。

复制代码
[root@mysqlbak]# ll -h
total 1.5G
-rw-r--r-- 1 root root 1.5G Dec 22 13:08 mysql_data_prod_2023-12-22-13-07.sql
仅打包

执行打包

shell 复制代码
tar cvf databak.tar mysql_data_prod_2023-12-22-13-
07.sql

查看打包的文件结果 可以看到就是单纯的打个包 并没有压缩

shell 复制代码
ll -h
total 2.9G
-rw-r--r-- 1 root root 1.5G Dec 22 17:07 databak.tar
-rw-r--r-- 1 root root 1.5G Dec 22 13:08 mysql_data_prod_2023-12-22-13-07.sql

解压命令 tar -xvf databak.tar

使用gzip压缩并打包
shell 复制代码
tar zcvf databak.tar.gz  mysql_data_prod_2023-12-22-13-07.sql

查看gzip打包的效果 databak.tar.gz 文件明显从1.5GB缩小到238M了 。但是花的时间稍微要长一点。

shell 复制代码
ll -h
total 3.1G
-rw-r--r-- 1 root root 1.5G Dec 22 17:07 databak.tar
-rw-r--r-- 1 root root 238M Dec 22 17:18 databak.tar.gz
-rw-r--r-- 1 root root 1.5G Dec 22 13:08 mysql_data_prod_2023-12-22-13-07.sql

解压命令 tar -zxvf databak.tar.gz

使用bz2压缩并打包
shell 复制代码
tar jcvf  databak.tar.bz2 mysql_data_prod_2023-12-22-13-07.sql

查看bz2的打包效果 可以看到文件名为 databak.tar.bz2 只有133M了。但是压缩的时间是真的长

shell 复制代码
ll -h
total 3.3G
-rw-r--r-- 1 root root 1.5G Dec 22 17:07 databak.tar
-rw-r--r-- 1 root root 133M Dec 22 17:26 databak.tar.bz2
-rw-r--r-- 1 root root 238M Dec 22 17:18 databak.tar.gz

解压命令 tar -jxvf databak.tar.bz2

使用xz压缩并打包
复制代码
tar -Jcvf  databak.tar.xz mysql_data_prod_2023-12-22-13-07.sql

查看xz的打包效果 可以看到文件名为 databak.tar.xz只有119M了。压缩时间竟然比bz2还要更长。

复制代码
ll -h
-rw-r--r-- 1 root root 1.5G Dec 22 17:07 databak.tar
-rw-r--r-- 1 root root 133M Dec 22 17:26 databak.tar.bz2
-rw-r--r-- 1 root root 238M Dec 22 17:18 databak.tar.gz
-rw-r--r-- 1 root root 119M Dec 22 17:48 databak.tar.xz

解压命令 tar -Jxvf databak.tar.xz

总结
  • 从压缩后的文件大小来看 gz > bz2 > xz
  • 从压缩后的消耗时长来看 gz< bz2 < xz

压缩的时间越长 压缩后的文件越小,但是解压的时间也会边长,所以选一个中规中矩的压缩方式是最好的,毕竟硬盘又不贵,目前比较普遍的格式是tar.gz。压缩大小和时间都比较居中 能够接收。

另外zip命令也是比较常用的压缩工具 使用命令格式:

shell 复制代码
#压缩
zip -r xxx.zip  xxx.sql 
#解压
unzip xxx.zip
相关推荐
杨云龙UP4 分钟前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制
snysy5 分钟前
服务器安全加固与入侵检测实战:从SSH加固、防火墙策略到挖矿木马排查
服务器·安全·ssh
東隅已逝,桑榆非晚12 分钟前
AVL数实现
c++·笔记·学习·算法
Android系统攻城狮23 分钟前
Linux FFmpeg深度解析之avcodec_parameters_from_context调用流程与实战(十六)
linux·运维·ffmpeg·音视频进阶·ffmpeg音视频·车载音视频进阶
m4Rk_26 分钟前
【论文阅读】Agent 记忆机制(116):Hybrid Memory——用互补策展与离线巩固构建长期记忆
论文阅读·人工智能·学习·开源·github
思想觉悟27 分钟前
SEAndroid实战
android·linux·c++
隔窗听雨眠28 分钟前
从存储引擎到执行计划:OceanBase高效运维的调优逻辑与工程实践
运维·oceanbase
运维行者_33 分钟前
供应链安全成最大风险源,企业如何构建可控的运维体系?
运维·开发语言·网络·数据库·安全·云计算·流量监控
一条泥憨鱼39 分钟前
【Kafka】零基础学习教程
java·分布式·学习·kafka
xiaoyunxuexibiji1 小时前
采购协同管理:从备货计划、进度确认到到货签收
大数据·运维·人工智能