Linux 压缩与打包

0 前言

本文总结压缩的两个命令(gzip、bzip2)以及打包命令tar,它们生成的文件通过文件名后缀区分。
对于每个命令,先总结其完整的格式及参数,再总结常用命令。
参考书:《鸟哥的Linux私房菜 基础学习篇(第三版)》第九章

1 gzip

gzip是应用最广的压缩命令,可压缩单个文件,压缩之后原文件不存在。

# gzip [-cdtv#] 文件名
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d:解压缩的参数
-t:可以用来检验一个压缩文件的一致性,看看文件有无错误
-v:可以显示出原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,但是压缩比最低,-9最慢,但压缩比更好,默认是-6

1.1 压缩

模板:

# gzip -v 文件名

例:

# gzip -v text.txt

1.2 查看

这里说的查看是指:在不解压的前提下,查看被压缩的文件。
模板:

# zcat 压缩文件(*.gz)

例:

# zcat text.txt.gz

1.3 解压缩

模板:

# gzip -d 压缩文件

例:

# gzip -d text.txt.gz

1.4 总结

压缩用-v
解压用-d
查看用zcat

2 bzip2

bzip2是为了取代gzip并提供更佳的压缩比而来的,用法几乎和gzip相同。

# bzip2 [-cdkzv#] 文件名
-c:将压缩过程中产生的数据输出到屏幕上
-d:解压缩的参数
-k:保留原文件,而不会删除原始的文件
-z:压缩的参数
-v:可以显示出原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,但是压缩比最低,-9最慢,但压缩比更好,默认是-6

2.1 压缩

模板:

# bzip2 -v 文件名

例:

# bzip2 -v text.txt

2.2 查看

这里说的查看是指:在不解压的前提下,查看被压缩的文件。
模板:

# bzcat 压缩文件(*.bz2)

例:

# bzcat text.txt.bz2

2.3 解压缩

模板:

# bzip2 -d 压缩文件

例:

# bzip2 -d text.txt.bz2

2.4 总结

压缩用-v
解压用-d
查看用bzcat

3 tar

tar是打包命令,可将目录整体打包,还可以通过gzip和bzip2进行压缩。
tar参数非常多,这里只总结常用的一些:

# tar [-j|-z] [cv] [-f 新建的文件名] filename...
# tar [-j|-z] [tv] [-f 新建的文件名]
# tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]
-c:新建打包文件,可搭配-v来查看过程中被打包的文件名
-t:查看打包文件的内容含有哪些文件名,重点在查看文件名
-x:解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开。
	注:-c、-t、-x不可同时出现在一串命令行中
-j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为 *.tar.bz2
-z:通过gzip的支持进行压缩/解压缩,此时文件名最好为 *.tar.gz
-f filename:-f后面要接被处理的文件名,建议-f单独写一个参数
-C 目录:用在解压缩时,若要在特定目录解压缩,可以用这个参数。

下面介绍常用的命令。

3.1 压缩
模板:

# tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

例:

# tar -jcv -f dir3.tar.bz2 dir3

上面这个命令将目录“dir3”打包压缩(bzip2方式)为压缩包“dir3.tar.bz2”

3.2 查询
查看压缩包里有哪些文件,以目录的形式输出
模板:

# tar -jtv -f filename.tar.bz2

例:

# tar -jtv -f dir3.tar.bz2

显示出压缩包“dir3.tar.bz2”里面有哪些文件。

3.3 解压缩
模板:

# tar -jxv -f filename.tar.bz2 -C 欲解压的目录

例:

# tar -jxv -f dir3.tar.bz2 -C .

将压缩包“dir3.tar.bz2”解压到当前目录(.)中。

3.4 解压缩单个文件
可从压缩包中单独解压某个文件,一般先要查看一下压缩包里都有哪些文件(3.2节有介绍)。
模板:

先查看有哪些文件:
# tar -jtv -f filename.tar.bz2
再单独解压缩某个文件
# tar -jxv -f 打包文件.tar.bz2 待解开文件名

例:

# tar -jtv -f dir3.tar.bz2
...
屏幕上显示出的文件目录
...
# tar -jxv -f dir3.tar.bz2 text.txt

上面这个命令先查看了压缩包“dir3.tar.bz2”里面有哪些文件,然后再将其中的“text.txt”单独解压缩。

你可能感兴趣的:(linux)