Linux下最常见的压缩文件通常是.tar.gz格式。
.gz:表示有gzip压缩工具压缩的文件。
.bz2:表示由bzip2压缩工具压缩的文件。
.tar:表示由tar打包程序打包的文件(tar并没有压缩功能,只是把目录合并成一个文件)。
.tar.gz:先由tar打包,然后再由gzip压缩。
.tar.bz2:先由tar打包,然后再由bzip2压缩。
.tar.xz:先由tar打包,然后再xz压缩。
gzip压缩工具
gzip [-d#] filename,其中#为1-9的数字。
-d:在解压缩时使用。
-#:表示压缩等级,1最差,9最差,6为默认。
[root@lizhipeng01 ~]# mkdir /tmp/8
[root@lizhipeng01 ~]# cd /tmp/8
[root@lizhipeng01 8]# mkdir test
[root@lizhipeng01 8]# mv /tmp/1.txt test
[root@lizhipeng01 8]# cd test
[root@lizhipeng01 test]# ls
1.txt
[root@lizhipeng01 test]# gzip 1.txt
[root@lizhipeng01 test]# ls
1.txt.gz
[root@lizhipeng01 test]#
gzip后面直接跟文件名,表示在当前目录下压缩该文件,原文件消失。
[root@lizhipeng01 test]# gzip -d 1.txt.gz
[root@lizhipeng01 test]# ls
1.txt
gzip -d 后面跟压缩文件表示解压缩文件。gzip不支持压缩目录。
[root@lizhipeng01 test]# cd .. 进入上一级目录
[root@lizhipeng01 8]# pwd 打印当前路径
/tmp/8
[root@lizhipeng01 8]# ls
test
[root@lizhipeng01 test]# gzip -c 1.txt > /tmp/1.txt.gz 压缩1.txt时,不希望1.txt消失
[root@lizhipeng01 test]# ls
1.txt
[root@lizhipeng01 test]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@lizhipeng01 test]# file !$
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Tue Jan 2 03:42:12 2018
[root@lizhipeng01 test]# gzip -d -c /tmp/8/test/1.txt.gz > /tmp/8/test/2.txt
[root@lizhipeng01 test]# ls
1.txt.gz 2.txt
[root@lizhipeng01 test]# gzip -d /tmp/8/test/1.txt.gz > /tmp/8/test/2.txt
[root@lizhipeng01 test]# ls
1.txt 2.txt
[root@lizhipeng01 8]# gzip test 压缩test目录
gzip: test is a directory -- ignored
[root@lizhipeng01 8]# ls test
1.txt
bzip2压缩工具
bzip2 [-dz] filename ,-z表示压缩,-d表示解压缩。压缩级别1-9,默认级别9。
yum install -y bzip2
[root@lizhipeng01 8]# cd test
[root@lizhipeng01 test]# bzip2 1.txt
[root@lizhipeng01 test]# ls
1.txt.bz2
[root@lizhipeng01 test]# bzip2 -d 1.txt.bz2
[root@lizhipeng01 test]# ls
1.txt
[root@lizhipeng01 test]# bzip2 -z 1.txt
[root@lizhipeng01 test]# ls
1.txt.bz2
bzip2同样不能压缩目录
[root@lizhipeng01 test]# cd ..
[root@lizhipeng01 8]# bzip2 test
bzip2: Input file test is a directory.
补充
[root@lizhipeng01 test]# ls
1.txt 2.txt
[root@lizhipeng01 test]# du -sh 1.txt
28K 1.txt
[root@lizhipeng01 test]# bzip2 1.txt
[root@lizhipeng01 test]# ls
1.txt.bz2 2.txt
[root@lizhipeng01 test]# bzip2 -d -c 1.txt.bz2 > /tmp/8/test/3.txt
[root@lizhipeng01 test]# ls
1.txt.bz2 2.txt 3.txt
[root@lizhipeng01 test]# bzip2 -d 1.txt.bz2 > /tmp/8/test/3.txt 去除c,1.txt.bz2不存在了
[root@lizhipeng01 test]# ls
1.txt 2.txt 3.txt
xz压缩工具
xz [-dz] filename。-z压缩,-d解压缩。
[root@lizhipeng01 test]# cd ..
[root@lizhipeng01 8]# bzip2 test
bzip2: Input file test is a directory.
[root@lizhipeng01 8]# cd test
[root@lizhipeng01 test]# ls
1.txt.bz2
[root@lizhipeng01 test]# bzip2 -d 1.txt.bz2
[root@lizhipeng01 test]# ls
1.txt
[root@lizhipeng01 test]# xz 1.txt
[root@lizhipeng01 test]# ls
1.txt.xz
[root@lizhipeng01 test]# xz -d 1.txt.zx
xz: 1.txt.zx: 没有那个文件或目录
[root@lizhipeng01 test]# xz -d 1.txt.xz
[root@lizhipeng01 test]# ls
1.txt
[root@lizhipeng01 test]# xz -z 1.txt
[root@lizhipeng01 test]# ls
1.txt.xz
xz同样不能压缩目录
[root@lizhipeng01 test]# cd ..
[root@lizhipeng01 8]# xz test
xz: test: Is a directory, skipping