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
相关推荐
正在努力的小河2 小时前
Linux设备树简介
linux·运维·服务器
荣光波比2 小时前
Linux(十一)——LVM磁盘配额整理
linux·运维·云计算
LLLLYYYRRRRRTT3 小时前
WordPress (LNMP 架构) 一键部署 Playbook
linux·架构·ansible·mariadb
轻松Ai享生活3 小时前
crash 进程分析流程图
linux
大路谈数字化5 小时前
Centos中内存CPU硬盘的查询
linux·运维·centos
luoqice5 小时前
linux下查看 UDP Server 端口的启用情况
linux
倔强的石头_6 小时前
【Linux指南】动静态库与链接机制:从原理到实践
linux
赏点剩饭7787 小时前
linux中的hostpath卷、nfs卷以及静态持久卷的区别
linux·运维·服务器
神鸟云7 小时前
DELL服务器 R系列 IPMI的配置
linux·运维·服务器·网络·边缘计算·pcdn
herderl7 小时前
**僵尸进程(Zombie Process)** 和**孤儿进程(Orphan Process)**
linux·运维·服务器·网络·网络协议