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 11月 4 22:33 MySQL-5.5.62-1.el6.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 144M 11月 4 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 11月 4 23:25 a
-rw-rw-r-- 1 wang wang 10K 11月 4 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