linux 文件压缩与拆分: tar,split


linux内核源码压缩格式:
(可以看到在3.x之后就不再使用bzip2了,因为它的 gzip< bzip2压缩比 < xz, 但又很消耗cpu, 从而就保留了xz的压缩格式,而gzip 是最通用的格式也得以保留)

内核版本压缩格式
https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/bzip2, gzip, xz
https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/gzip, xz

在这里插入图片描述在这里插入图片描述

1, 文件: 压缩/解压缩

  • gzip, gunzip
  • bzip2, bunzip2
  • xz, unxz
# 1, 压缩二进制文件(xz 压缩比 ~= gzip )
[root@eadage test]# tar -xvf MySQL-5.5.62-1.el6.x86_64.rpm-bundle.tar 
[root@eadage test]# ls
MySQL-5.5.62-1.el6.x86_64.rpm-bundle.tar
MySQL-client-5.5.62-1.el6.x86_64.rpm
MySQL-devel-5.5.62-1.el6.x86_64.rpm
MySQL-embedded-5.5.62-1.el6.x86_64.rpm
MySQL-server-5.5.62-1.el6.x86_64.rpm
MySQL-shared-5.5.62-1.el6.x86_64.rpm
MySQL-shared-compat-5.5.62-1.el6.x86_64.rpm
MySQL-test-5.5.62-1.el6.x86_64.rpm

[root@eadage test]# tar -Jcvf mysql-bundle.tar.xz *.rpm 
...
[root@eadage test]# ll -h
total 432M
-rw-r--r-- 1 root root  145M 114 22:33 MySQL-5.5.62-1.el6.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root  144M 114 22:36 mysql-bundle.tar.xz
....

2, 目录: 归档/解档

tar 命令参数

  • x --extract --get [options] [pathname …]
  • -c, --create create a new archive
wang@wang-pc:~/txt$ 
mkdir a/{b/c,b2}
echo 'a.txt'>a/a.txt
echo 'b.txt'>a/b/b.txt
echo 'b2.txt'>a/b2/b2.txt
echo 'c.txt'>a/b/c/c.txt

wang@wang-pc:~/txt$ tree  a
a
├── a.txt
├── b
│   ├── b.txt
│   └── c
│       └── c.txt
└── b2
    └── b2.txt
3 directories, 4 files

wang@wang-pc:~/txt$ tar -cvf a.tar a
.....
wang@wang-pc:~/txt$ du -hs a
32K	a
wang@wang-pc:~/txt$ ls -lh
total 16K
drwxrwxr-x 4 wang wang 4.0K 114 23:25 a
-rw-rw-r-- 1 wang wang  10K 114 23:41 a.tar

3, 文件/目录: 归档压缩

tar 的命令参数如下:

  • -j, --bzip2
  • -J, --xz
  • -z, --gzip, --gunzip --ungzip
tar -zcvf /zxvf  xx.tar.gz  dest-dir: 通用压缩格式
tar -jcvf /jxvf  xx.tar.bz2  dest-dir
tar -Jcvf /Jxvf  xx.tar.xz  dest-dir: 文本压缩体积最小

4, 文件拆分/合并

  • 使用场景:在文件上传大小有限制的时候,需要拆分文件来上传;等上传好后,需要合并还原文件
  • split -d -n 2 --additional-suffix=.tar.gz xx.tar.gz split_
[root@c7 t2]# ll -h /var/log/messages
-rw-------. 1 root root 2.4M Sep 18 13:32 /var/log/messages
[root@c7 t2]# ls
[root@c7 t2]# split -n 2 /var/log/messages message_
[root@c7 t2]# ll -h
total 2.4M
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_aa
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_ab

#-d 使用数字为suffix
[root@c7 t2]# split -n 2 -d  /var/log/messages message_
[root@c7 t2]# ls
message_00  message_01  message_aa  message_ab
[root@c7 t2]# ll -h
total 4.7M
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_00
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_01
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_aa
-rw-r--r-- 1 root root 1.2M Sep 18 13:33 message_ab

#文件还原==>合并为原文件
[root@c7 t2]# cat message_0* > message1.log
[root@c7 t2]# ll -h message1.log
-rw-r--r-- 1 root root 2.4M Sep 18 13:36 message1.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根哥的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值