linux常用压缩命令

tar命令

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

压缩

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

解压

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

常用选项

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

tar生成3种文件大小对比

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

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

7z命令

压缩

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

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

解压

  • 解压文件到当前目录
1
7z x filename.7z
  • 解压文件到指定目录,-o后面直接跟目录,不需要空格
1
7z x test.7z -r -o./test
  • 解压分卷压缩的文件
1
7z x filename.7z.001

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

常用选项

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

zip命令

压缩

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

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

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

解压

1
unzip filename.zip -d filedir

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

rar命令

压缩

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

解压

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