1、压缩比:
压缩前和压缩后的大小体积比例
2、压缩目的:
时间换空间,用cpu的时间换磁盘的空间;如何选择压缩,要衡量是节省cpu时间还是节省硬盘空间。
3、linux压缩、解压缩工具,及归档工具:
序号 | 压缩工具 | 解压缩工具 | 不解压查看内容 | 后缀 | 备注 |
1 | compress | uncompress | .z | ||
2 | gzip | gunzip | zcat | .gz | 只能压缩文件 |
3 | bzip2 | bunzip2 | .bz2 | 只能压缩文件 | |
4 | xz | unxz | .xz | 只能压缩文件 | |
5 | lzma | unlzma | lzcat | .lzma | |
6 | zip | unzip | zcat | .zip | 压缩比比较小 |
归档工具 | |||||
1 | tar | ||||
2 | cpio |
3.1、gzip、 gunzip、 zcat:
gzip [ options ] [ name ... ] //压缩单个文件,后缀为.gz,同时删除原文件
[ options ]:
-d:直接解压缩,相当于gunzip,
-#:制定压缩比,默认是6,数字越大,压缩比越大(范围1-9),不建议修改
-c:将压缩结果输出至标准输出。
格式: gzip -c FILE >/PATH/TO/SOMEFILE.GZ
如:
[root@localhost tmp]# ls
fstab issue
[root@localhost tmp]# gzip -c issue > ./issue1.gz
[root@localhost tmp]# ll
total 12
-rw-r--r--. 1 root root 540 Nov 20 19:38 fstab
-rw-r--r--. 1 root root 23 Nov 20 19:38 issue
-rw-r--r--. 1 root root 49 Nov 20 19:53 issue1.gz
[root@localhost tmp]# zcat issue1.gz
\S
Kernel \r on an \m
[root@localhost tmp]#
gunzip [ optios ] [ name ... ] //解压缩,同时会删除原压缩文件
zcat [ -fhLV ] [ name ... ] //直接查看压缩中的文件内容,用cat查看会出现乱码
如:
[root@localhost tmp]# ls
fstab issue
[root@localhost tmp]# gzip fstab issue
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 295 Nov 20 19:38 fstab.gz
-rw-r--r--. 1 root root 49 Nov 20 19:38 issue.gz
[root@localhost tmp]#
[root@localhost tmp]# gunzip fstab.gz issue.gz
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 540 Nov 20 19:38 fstab
-rw-r--r--. 1 root root 23 Nov 20 19:38 issue
[root@localhost tmp]#
[root@localhost tmp]# zcat issue.gz
\S
Kernel \r on an \m
[root@localhost tmp]#
3.2、 bzip2, bunzip2 、bzcat
bzip2 [ options ] [ filenames ... ] //压缩单个文件,后缀为.bz2,同时删除原文件
[ options ]:
-d:直接解压缩,相当于bunzip,
-#:制定压缩比,默认是6,数字越大,压缩比越大(范围1-9),不建议修改
-k:保留原文件
bunzip2 [ options ] [ filenames ... ]
bzcat [ -s ] [ filenames ... ]
如:
[root@localhost tmp]# gzip ./*
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 295 Nov 20 19:38 fstab.gz
-rw-r--r--. 1 root root 49 Nov 20 19:38 issue.gz
[root@localhost tmp]# gzip -d fstab.gz issue.gz
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 540 Nov 20 19:38 fstab
-rw-r--r--. 1 root root 23 Nov 20 19:38 issue
3.3、 xz, unxz, xzcat,
xz [ options ] [ filenames ... ] //压缩单个文件,后缀为.xz,同时删除原文件
[ options ]:
-d:直接解压缩,相当于unxz,
-#:制定压缩比,默认是6,数字越大,压缩比越大(范围1-9),不建议修改
-k:保留原文件
注意:gzip、bzip、xz只能压缩文件不能是目录,而且三者压缩和解压缩都会删除原文件,三者压缩比依次增大
3.4、归档工具:tar、cpio
由于gzip、bzip2、xz压缩软件只能压缩单个文件,不能压缩目录。这种情况下,
如果要压缩一个目录,则先要进行归档操作,归档操作就是将多个文件打包成一个。
归档一般会增大文件体积,因为归档也要有一些文件参与,因此可以将目录归档后在压缩。
3.4.1、tar命令格式:
tar [OPTION...] [FILE]...
注意:tar命令的options可以不带“-”,而且创建、展开、查看必须带-f选项。
options:
-c:创建归档
tar -cf /PATH/TO/SOMEFILE.tar FILE....
-x:展开归档;-C:和-x一起使用表示展开到何处目录,也可以不跟,表示当前目录
tar -xf /PATH/FROM/SOMEFILE.tar [-C /TO/SOME/PATH]
-t:不展开归档查看归档文件
tar -tf /PATH/TO/SOMEFILE.tar
归档后在进行压缩,也可以归档的同时进行压缩(结合gzip、bzip2、xz)。
归档并压缩:
-z:调用gzip
-j:调用bzip2
-J:调用xz
tar {z|j|J}cf /PATH/TO/SOMEFILE.tar.{gz|bz2|xz} FILE... //归档并压缩
tar {z|j|J}xf /PATH/TO/SOMEFILE.tar.{gz|bz2|xz} FILE... //展开归档并解压缩
如:
[root@localhost tmp]# ls
test
[root@localhost tmp]# tar -zcf test.tar.gz test/
[root@localhost tmp]# ll
total 8
drwxr-xr-x. 2 root root 49 Nov 20 20:55 test
-rw-r--r--. 1 root root 5139 Nov 20 21:08 test.tar.gz
[root@localhost tmp]#
如:
[root@localhost tmp]# ll
total 0
drwxr-xr-x. 2 root root 49 Nov 20 20:55 test
[root@localhost tmp]# gzip test/
gzip: test/ is a directory -- ignored
[root@localhost tmp]# tar -cf test/ //必须指明归档后的文件名,否则不通过,如这里所示
tar: Cowardly refusing to create an empty archive
Try `tar --help‘ or `tar --usage‘ for more information.
[root@localhost tmp]# tar -cf test.tar test/
[root@localhost tmp]# ls
test test.tar
[root@localhost tmp]# tar -tf test.tar //查看归档中的文件有哪些
test/
test/fstab
test/functions
test/issue
[root@localhost tmp]#
[root@localhost tmp]# gzip test.tar
[root@localhost tmp]# ll
total 8
drwxr-xr-x. 2 root root 49 Nov 20 20:55 test
-rw-r--r--. 1 root root 5148 Nov 20 20:56 test.tar.gz
[root@localhost tmp]#
3.5、zip:既能归档又能压缩,因此可以压缩目录,但是压缩比有限。
zip、unzip
命令格式:
zip /PATH/TO/SOMEFILE.zip FILE....
如:
[root@localhost tmp]# ls
test
[root@localhost tmp]# zip test
zip error: Nothing to do! (test.zip)
[root@localhost tmp]# zip test.zip
zip error: Nothing to do! (test.zip)
[root@localhost tmp]# zip test.zip test/
adding: test/ (stored 0%)
[root@localhost tmp]# ls
test test.zip
[root@localhost tmp]#
原文:http://10631377.blog.51cto.com/10621377/1983611