Skip to content

Latest commit

 

History

History
98 lines (84 loc) · 3.59 KB

Compress.md

File metadata and controls

98 lines (84 loc) · 3.59 KB

压缩解压

Linux系统中常见的压缩文件格式(后缀名)有gz、bz、zip、rar和Z。

*.Z类型为compress软件压缩的格式,目前已经退出历史舞台,被gzip取代。

打包和压缩是两个概念。打包只是单纯将多个文件合并成一个文件。 比如常见的*.tar后缀的是打包文件而不是压缩文件。

尽管如此,tar也提供了压缩功能的选项。在打包之后再进行一次压缩,比如*.tar.gz文件。

gzip

gzip全称GNU zip。最简单的用法就是gzip直接跟文件名,用来压缩。 gzip test.sh 这样会生成test.sh.gz的文件。但是原文件会消失。加上-k选项则会保留原文件

选项 英文释义 描述
d decompress 解压
r recursive 压缩目录
另有gunzip可以用于解压.gz的文件,效果同gzip -d。注意:
gzip -d foo 可以解压foo.gz文件

zcat

zcat可以在不解压*.gz文件的情况下,打印压缩文件的内容到屏幕。

bzip2

bzip2比gzip有更好的一个压缩比。但其使用方法,选项和参数都和gzip相同。

相应的bzip2有一个bzcat

tar

确切说,tar是打包工具而不是压缩工具,但是也提供了借助gzip或bzip2来压缩的选项。 tar命令的选项可以不加-,比如常用的tar xvf *.tar.gz

常用选项 英文全称 描述
c create 创建文件
C change DIR 指定解压路径
f file 指定文件名,f后要紧跟文件名
j 利用bzip2来压缩
J 利用xz来压缩
p permissions 保留原文件的权限和属性
v verbose 显示正在压缩/解压的文件
x extract 解压缩
z 利用gzip来压缩

c

在不压缩只打包的时候不加c会报错。 tar cvf abc.tar abc/

f

tar -zcv -f abc.tar.gz abc/

因为f后面要紧跟文件名,所以最好将-f选项单独写出来,而不是组合使用

xz

xz是linux上最有效的压缩功能,现在被用来储存Linux内核文件。
它压缩速度慢,但是提供更高的压缩率。

命令 描述
xz * 压缩当前目录下所有文件,缀以.xz,不打包
xz foo 压缩foo文件为foo.xz,如果成功,会删除foo文件
选项 全命令 描述
c stdout 解压(非)压缩文件到标准输出
d decompress 解压.xz文件,默认替换掉压缩文件
k keep 解压之后不删除原文件

zip/unzip

zip

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

最简单用法,zip+压缩后的文件名+要压缩的文件。如: zip jdk-docs.zip jdk-doc/

unzip

unzip 直接跟文件名,就能解压文件到当前目录。 unzip jdk-docs.zip

常用选项 英文全称 描述
d directory 指定解压路径
I 指定为UNIX的字符集
n never 从不覆盖已存在的文件
o overwite 覆盖文件,不产生任何提示
O 指定为Dos,Windows或OS/2中的字符集
有些Windows下压缩的文件,在解压后中文会出现乱码,这是由于编码不一致造成的。
图形化的解压工具无法指定编码格式,此时必须要借助unzip命令。
unzip -O cp936 xxx.zip

cp936为Windows的默认编码格式,也即GBK,据测试也可指定为gb2312编码。

指定编码的时候,大小写不敏感

rar

格式

rar <命令选项> 压缩包名称 [要操作的文件]
常用选项 英文全称 描述
a add 给压缩包内添加文件
d delete 删除压缩包内某文件
e extract 提取文件到当前目录,不创建新目录

unrar

注意,改命令选项不加-