Linux下常用压缩命令

一、tar命令

tar命令用来打包一个目录,它支持三种格式:".tar"、".bz2"和".gz"

1.1、压缩

tar -cvf [文件名].tar [文件目录] //打包成.tar文件
tar -jcvf [文件名].tar.bz2 [文件目录] //打包成.bz2文件
tar -zcvf [文件名].tar.gz [文件目录] //打包成.gz文件

1.2、解压缩

tar -xvf [文件名].tar //解压到当前文件
tar -xvf [文件名].tar -C [文件目录] //将.tar文件解压到指定目录
tar -jxvf [文件名].tar.bz2 -C [文件目录] //解压.bz2文件到指定目录
tar -zxvf [文件名].tar.gz -C [文件目录] //解压.gz文件到指定目录

1.3、常用选项

-c 建立新的压缩文件
-C 指定解压目录,该目录必须存在
-x 从压缩的文件中提取文件
-j 支持bzip2解压文件
-f 指定压缩文件
-v 显示操作过程
-z 支持gzip解压文件

1.4、tar生成三种文件大小对比

压缩类型 压缩前 压缩后
tar 134M 133M
gz 134M 51M
bz2 134M 47M

对比可以发现,tar格式只是将文件打包,并没有压缩。bz2的压缩率最高。

二、7z命令

2.1、文件压缩

  • 压缩单个文件或者文件夹
7z a -t7z test.7z file //将file压缩为test.7z
  • 将文件压缩到指定目录下
7z a -t7z ./test/test.7z file //将file压缩到当前目录的test目录下,压缩文件名为test.7z
  • 分卷压缩
7z a -t7z test2.7z filename -v20m

-t7z指定压缩格式为7z,filename表示要压缩的文件,-v20m表示压缩后每个卷最大不能超过20MB

2.2、解压

解压文件到当前目录

7z x filename.7z

解压文件到指定目录,-o后面直接跟目录,不需要空格

7z x test.7z -r -o./test

解压分卷压缩的文件

7z x filename.7z.001

解压分卷压缩的文件,只需要指定第一个压缩文件的名称即可

2.3、 常用选项

-a 添加文件/文件夹到压缩包
-t 指定压缩格式,如-t7z表示指定压缩格式为7z
-o 是指定解压到的目录
-r 递归所有的子文件夹,这个选项通常可以忽略
-x 解压文件

三、zip命令

3.1、压缩

  • 压缩单个文件
zip filename.zip file

将file压缩为filename.zip,file不能是目录

  • 压缩目录文件
zip -r filename.zip filedir

3.2、解压

unzip filename.zip -d filedir

将filename.zip解压到filedir目录,如果不指定-d filedir则解压到当前目录

四、rar命令

4.1、压缩

  • 将filedir压缩为filename.rar文件
rar a filename.rar filedir

4.2、解压

  • 将rar文件解压到指定的dir目录,如果不指定dir则解压到当前目录
rar x filename.rar dir

五、各种压缩格式对比

压缩格式 源文件大小 压缩后大小 耗时
.tar 134M 133M 0.361s
.bz2 134M 47M 10.963s
.gz 134M 51M 7.402s
.zip 134M 52M 8.267s
.rar 134M 41M 暂无
.7z 134M 26M 55.903s

 

相关推荐