6.1 压缩打包介绍
文件或目录压缩打包,可以节省一定的磁盘空间,同时也方便传输,也包括网络传输(网络传输时节省带宽资源
Linux:常规压缩文件格式.zip, .gz, .bz2, .xz, .tar.gz, .tar.bz2, .tar.xz
常见的后缀名所对应的压缩工具:
.gz是gzip 压缩工具压缩的文件
.bz2是 bzip2 压缩工具压缩的文件
.tar是 tar 打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
.tar.gz 可以理解为先用tar打包,然后再gzip压缩
.tar.bz2 同上,先用tar打包,然后再bzip2压缩
6.2 gzip压缩工具
mkdir /tmp/d6z
创建目录和文件[root@aiker01 ~]# mkdir /tmp/d6z
[root@aiker01 ~]# touch !$/1.txt
touch /tmp/d6z/1.txt
find /etc/ -type f -name "*conf" -exec cat {} >> !$ \; 把etc下的所有conf文件导出到1.txt文件
[root@aiker01 ~]# find /etc/ -type f -name "*conf" -exec cat {} >> !$ \;
find /etc/ -type f -name "*conf" -exec cat {} >> /tmp/d6z/1.txt \;
du -sh /tmp/d6z/1.txt
查看文件大小
252K /tmp/d6z/1.txt
wc -l !$ 查看文件行数
[root@aiker01 ~]# wc -l !$
wc -l /tmp/d6z/1.txt
32270 /tmp/d6z/1.txt
gzip !$ 压缩文件,默认6级别,压缩后源文件会消失,gzip不能压缩目录
[root@aiker01 ~]# gzip !$
gzip /tmp/d6z/1.txt
[root@aiker01 ~]# ll
total 32
dr-xr-xr-x. 2 root aiker 6 Dec 2 14:40 1
drwxr-xr-x. 4 root root 70 Dec 3 01:07 111
-rw-r--r--. 3 aiker aiker 0 Dec 2 16:11 11.txt
-rwxrwxrwx. 1 root root 10 Dec 4 01:16 120301.txt
-rw-r--r--. 3 aiker aiker 0 Dec 2 16:11 1.txt
-rw-r--r--. 1 root root 0 Dec 2 23:05 1.txt~.bak
-rw-r--r--. 1 root root 0 Dec 2 23:05 1.txz~.bak
-rw-r--r--. 1 root root 0 Dec 2 23:01 2.txt
drwxrwxr-x. 3 root root 15 Dec 2 22:44 3
-rw-r--r-- 1 root root 0 Dec 7 02:28 {3...5}.txt
-rw-r--r-- 1 root root 0 Dec 7 02:27 3.txt
-rw-r--r-- 1 root root 0 Dec 7 02:27 4.txt
-rw-rw-r--. 1 root root 0 Dec 7 02:27 5.txt
-rw-rw-r--. 1 root root 0 Dec 2 22:44 6.txt
-rw-rw-r--. 1 root root 0 Dec 2 22:48 7.txt
-rw-rw-r--. 1 root root 0 Dec 2 22:49 8.bak
drwxrwxr--. 6 root aiker 75 Dec 4 01:55 9
-rw-------. 1 root root 1278 Nov 30 02:40 anaconda-ks.cfg
-rw-------. 1 root root 7668 Dec 2 16:25 a.txt
drwxr-xr-x 2 root root 93 Dec 7 00:13 backup
-rwxr-xr-x 1 root root 191 Dec 7 00:11 create_files.sh
-rw-r----- 1 root root 0 Dec 7 00:51 file1.txt
-rw-r----- 1 root root 0 Dec 7 00:51 file2.txt
-rw-r----- 1 root root 0 Dec 7 00:51 file3.txt
----r----- 1 root root 0 Dec 7 00:51 file4.txt
----r----- 1 root root 0 Dec 7 00:51 file5.txt
-rw----r-- 1 root root 0 Dec 7 00:51 file[6-8].txt
-rw-r--r-- 1 root root 0 Dec 7 00:13 MybashProgram.sh
-rw-r--r-- 1 root root 0 Dec 7 00:13 mycprogram.txt
-rw-r--r-- 1 root root 0 Dec 7 00:13 MyCProgram.txt
-rw-r--r-- 1 root root 0 Dec 7 00:35 new-test
-rw-r--r-- 1 root root 0 Dec 7 00:13 Program.txt
-rw-r--r--. 1 root root 389 Dec 1 03:20 pubkey.pub
drwxr-xr-x. 2 root root 19 Dec 2 16:14 test
-rw-r--r-- 1 root root 0 Dec 7 00:35 test.txt
[root@aiker01 ~]# ll /tmp/d6z/1.txt.gz
-rw-r--r-- 1 root root 337200 Dec 10 11:27 /tmp/d6z/1.txt.gz
[root@aiker01 ~]# du -sh !$
du -sh /tmp/d6z/1.txt.gz
332K /tmp/d6z/1.txt.gz
gzip -1 /tmp/d6z/1.txt
最低级别压缩
gzip -9 !$
最大级别压缩,保持默认压缩级别即可
file !$ 查看压缩文件的属性
[root@aiker01 ~]# file !$
file /tmp/d6z/1.txt.gz
/tmp/d6z/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Sun Dec 10 11:27:37 2017, max compression
zcat !$ 查看文件内容
[root@aiker01 ~]# zcat !$ | more
zcat /tmp/d6z/1.txt.gz | more
# Generated by NetworkManager
nameserver 192.168.0.1
# The upstream Mozilla.org project tests all changes to the root CA
# list with the NSS (Network Security Services) library.
#
# Occassionally, changes might cause compatibility issues with
# other cryptographic libraries, such as openssl or gnutls.
#
# The package maintainers of the CA certificates package might decide
# to temporarily keep certain (legacy) root CA certificates trusted,
# until incompatibility issues can be resolved.
#
# Using this configuration file it is possible to opt-out of the
# compatibility choices made by the package maintainer.
gzip -d /tmp/d6z/1.txt.gz 解压缩
[root@aiker01 ~]# gzip -d /tmp/d6z/1.txt.gz
[root@aiker01 ~]# gzip -d /tmp/d6z/1.txt.gz
[root@aiker01 ~]# ll /tmp/d6z/
total 1256
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
gzip -c /tmp/d6z/1.txt > /tmp/d6z/1.txt.gz 指定压缩后的文件名和目录,源文件不会消失
[root@aiker01 ~]# gzip -c /tmp/d6z/1.txt > /tmp/d6z/1.txt.gz
[root@aiker01 ~]# ll /tmp/d6z/
total 1588
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
gzip -d -c /tmp/d6z/1.txt.gz > /tmp/d6z/2.txt 指定解压后的路径和文件名,源文件不消失
[root@aiker01 ~]# gzip -d -c /tmp/d6z/1.txt.gz > /tmp/d6z/2.txt
[root@aiker01 ~]# ll /tmp/d6z/
total 2844
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
-rw-r--r-- 1 root root 1282605 Dec 10 12:13 2.txt
gunzip -c /tmp/d6z/1.txt.gz > /tmp/d6z/11.txt 效果同上
[root@aiker01 ~]# gunzip -c /tmp/d6z/2.txt > /tmp/
6.3 bzip2压缩工具
bzip2同样不支持压缩目录
bzip2 1.txt 压缩文件默认就是9级,压缩后源文件消失
[root@aiker01 d6z]# bzip2 1.txt
[root@aiker01 d6z]# ll
total 4260
-rw-r--r-- 1 root root 1282605 Dec 10 12:29 11.txt
-rw-r--r-- 1 root root 160769 Dec 10 11:27 1.txt.bz2
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:29 2.2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:28 2.2.txt.gz
-rw-r--r-- 1 root root 1282605 Dec 10 12:13 2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:21 2.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txtnew
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txt.new
-rw-r--r-- 1 root root 1282605 Dec 10 12:26 3.txt
-rw-r--r-- 1 root root 0 Dec 10 12:26 4.txt
[root@aiker01 d6z]# du -sh 1.txt.bz2
160K 1.txt.bz2
du -sh 1.txt.bz2 可以看到bzip2压缩出来的文件比gzip更小
[root@aiker01 d6z]# du -sh 1.txt.bz2 1.txt.gz
160K 1.txt.bz2
332K 1.txt.gz
bzip2 -d 1.txt.bz2 解压缩文件
[root@aiker01 d6z]# bzip2 -d 1.txt.bz2
[root@aiker01 d6z]# ll
total 5356
-rw-r--r-- 1 root root 1282605 Dec 10 12:29 11.txt
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:29 2.2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:28 2.2.txt.gz
-rw-r--r-- 1 root root 1282605 Dec 10 12:13 2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:21 2.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txtnew
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txt.new
-rw-r--r-- 1 root root 1282605 Dec 10 12:26 3.txt
-rw-r--r-- 1 root root 0 Dec 10 12:26 4.txt
bunzip2 1.txt.bz2 同上,解压缩文件
[root@aiker01 d6z]# bzip2 1.txt
[root@aiker01 d6z]# bunzip2 1.txt.bz2
[root@aiker01 d6z]# ll
total 5356
-rw-r--r-- 1 root root 1282605 Dec 10 12:29 11.txt
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:29 2.2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:28 2.2.txt.gz
-rw-r--r-- 1 root root 1282605 Dec 10 12:13 2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:21 2.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txtnew
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txt.new
-rw-r--r-- 1 root root 1282605 Dec 10 12:26 3.txt
-rw-r--r-- 1 root root 0 Dec 10 12:26 4.txt
bzip2 -1 1.txt
一级压缩
bzip2 -c 1.txt > /tmp/1.txt.bz2 指定压缩文件输出后的文件名和路径,源文件不消失
[root@aiker01 d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@aiker01 d6z]# du -sh /tmp/1.txt.bz2
160K /tmp/1.txt.bz2
bzcat 1.txt.bz2 | more 查看bzip2格式的压缩文件内容
[root@aiker01 d6z]# bzcat 1.txt.bz2 | more
# Generated by NetworkManager
nameserver 192.168.0.1
bzip2 -d -c 2.txt.bz2 > /tmp/5.txt 指定解压缩出来的文件的路径和文件名,源文件不消失
[root@aiker01 d6z]# bzip2 -d -c 2.txt.bz2 > 5.txt
[root@aiker01 d6z]# ll
total 6772
-rw-r--r-- 1 root root 1282605 Dec 10 12:29 11.txt
-rw-r--r-- 1 root root 1282605 Dec 10 11:27 1.txt
-rw-r--r-- 1 root root 337200 Dec 10 11:44 1.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:29 2.2.txt
-rw-r--r-- 1 root root 0 Dec 10 12:28 2.2.txt.gz
-rw-r--r-- 1 root root 1282605 Dec 10 12:13 2.txt
-rw-r--r-- 1 root root 160769 Dec 10 12:35 2.txt.bz2
-rw-r--r-- 1 root root 0 Dec 10 12:21 2.txt.gz
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txtnew
-rw-r--r-- 1 root root 0 Dec 10 12:25 2.txt.new
-rw-r--r-- 1 root root 1282605 Dec 10 12:26 3.txt
-rw-r--r-- 1 root root 0 Dec 10 12:26 4.txt
-rw-r--r-- 1 root root 1282605 Dec 10 12:36 5.txt
bunzip2 -c /tmp/1.txt.bz2 > /tmp/d6z/1.txt.new
同上
6.4 xz压缩工具
xz同样不支持压缩目录
xz 1.txt 压缩文件,压缩后源文件消失[root@aiker01 d6z]# xz 1.txt <br/>[root@aiker01 d6z]# ll<br/>total 60<br/>-rw-r--r-- 1 root root 60588 Dec 10 12:53 1.txt.xz
du -sh 1.txt.xz 查看压缩文件后大小
[root@aiker01 d6z]# du -sh 1.txt.xz
60K 1.txt.xz
xz -d 1.txt.xz 解压缩,解压缩后压缩包消失
[root@aiker01 d6z]# xz -d 1.txt.xz
[root@aiker01 d6z]# ll
total 1256
-rw-r--r-- 1 root root 1282605 Dec 10 12:53 1.txt
unxz 1.txt.xz 解压缩文件同xz -d
[root@aiker01 d6z]# unxz 1.txt.xz
[root@aiker01 d6z]# ll
total 1256
-rw-r--r-- 1 root root 1282605 Dec 10 12:53 1.txt
xz -c 1.txt > ./2.txt.xz 压缩文件到指定目录,支持重命名压缩后的文件名,压缩后源文件不消失
[root@aiker01 d6z]# xz -c 1.txt > ./2.txt.xz
xzcat 2.txt.xz | more 查看压缩包中文件的内容
[root@aiker01 d6z]# xzcat 2.txt.xz | more
xz -c -d 2.txt.xz > ./2.txt 解压缩文件到指定目录支持重命名,压缩包不消失
[root@aiker01 d6z]# xz -c -d 2.txt.xz > ./2.txt
unxz -c 2.txt.xz > ./3.txt 同上
转载于:https://blog.51cto.com/235571/2096726