日期:2014-05-16  浏览次数:20787 次

Linux压缩打包,tar

文件后缀名说明

.gz ? ? ? ? ? ?以gzip压缩的压缩包。

.bz2 ? ? ? ? ?以bzip2压缩的压缩包。

.tar ? ? ? ? ? 以tar打包的文件,并没有压缩。

.tar.gz ? ? ? 经过tar打包,并经过gzip压缩。

.tar.bz2 ? ? 经过tar打包,并经过bzip2压缩。

?

gzip 压缩

gzip [-cdtv#] [name]

?-c:将压缩的数据输出到屏幕上,可透过数据流重定向写入文件。

?-d:解压缩。

?-t :检查数据完整性。

?-v:显示源文件和压缩文件的压缩比等信息。

?-#:压缩等级。

?

例子 压缩:

?

$ gzip testfile.txt
? 默认情况下,压缩成后缀为.gz的文件,并删除原文件。

?

?

例子 解压缩:

?

$ gzip -d testfile.txt.gz
?同理,解压缩会生成原来文件,并删除后缀.gz文件。

?

?

例子 压缩并保留源文件:

?

$ gzip -c testfile.txt > testfile.txt.gz
?利用重定向,将压缩以后的数据写入到指定文件中。

?

?

bzip2 压缩

bzip2 [-cdkzv#] [name]

?-c:将压缩或解压缩的数据输出到标准输出中。标准输出一般指屏幕。

?-d:解压缩。

?-k:保留原文件,不会自动删除原始文件。

?-z:压缩。

?-v:显示原文件和压缩文件的压缩比等信息。

?-#:压缩等级。

?

例子 压缩:

?

$ bzip2 -z testfile.txt
?testfile.txt文件会压缩成testfile.txt.bz2文件。

?

?

例子 解压缩:

?

$ bzip2 -d testfile.txt.bz2
?testfile.txt.bz2文件会解压缩成testfile.txt文件。

?

?

例子 压缩成特定名字的文件:

$ bzip2 -c testfile.txt > testfile.txt.bz2

?

gzip和bzip2主要用于对单一文件进行压缩。即使对目录压缩,也是将目录中的所有文件分别进行压缩。

?

tar 打包

tar?[-c|-x|-t]?[-j|-z] [-v] [-f filename] [pathname]?

?-c:建立打包文件。

?-r:追加文件到打包文件的末尾。

?-u:只更新较新的文件到打包文件。

?-t:列出打包文件的内容。

?-x:解打包或解压缩。

?-j:通过bzip2进行压缩或解压缩。

?-z:通过gzip进行压缩或解压缩。

?-v:显示处理过程。

?-p:保留备份文件的原本权限。常用于备份配置文件等。

?-P:保留绝对路径。允许备份文件含有根目录。

?--exclude=PATTERN:打包时不包含指定的文件。

?-f filename:filename代表要处理的打包文件。

?-C DIR:解压特定的路径。

?pathname:要被压缩的文件或路径名称。

?

注:-f filename最好单独放在一起。 否则"tar -zcfv filename"会将v当作包名。

?

例子 打包并压缩:

$ tar -cjv -f ~/testpath.tar.bz2 ~/testpath
$ tar -czv -f?~/testpath.tar.gz ~/testpath

?分别用2种压缩方式,打包并压缩成2个文件。

?

例子 解压缩并解包:

$ tar -xjv -f ~/testpath.tar.bz2
$ tar -xzv -f ~/testpath.tar.gz

?这2种解包方式,会在当前路径下进行。

?

$ tar -xjv -f ~/testpath.tar.bz2 -C /tmp
$ tar -xzv -f ~/testpath.tar.gz -C /tmp

?这2种解包方式,会在指定路径下/tmp下进行。

?

例子 查看包中的文件:

$ tar -tjv -f ~/testpath.tar.bz2
$ tar -tzv -f ~/testpath.tar.gz

?