linux文件压缩、解压、打包、解包命令总结

文件压缩、解压、打包、解包

zip压缩/unzip解压

zip/unzip  [参数]  被压缩文件

参数:

参数    含义
-r    压缩所有子目录
-d    解压

命令

# 压缩成zip文件(其中havorld.zip中的.zip可以省略,默认扩展名为zip)
zip -r havorld.zip ./havorld/*
# 解压zip文件到指定目录
unzip -d /home/havorld havorld.zip

注:zip既能压缩文件又能压缩目录

gzip压缩/解压

gzip使用格式:

gzip  [参数]  被压缩文件

参数:

参数    含义
-r    压缩所有子目录
-d    解压

命令

gzip havorld.txt # 压缩指定文件 ,生成havorld.txt.tar.gz
gzip -r havorld.tar havorld.tar.gz # 压缩文件
gzip havorld.tar # 压缩打包文件,生成havorld.tar.gz

gzip -d havorld.tar.gz # 解压文件

注:gzip只能压缩文件不能压缩目录

打包(归档)/解包 tar

  • 数据备份:把一系列文件打包到一个大文件中
  • 恢复数据:把档案文件数据解包

tar使用格式:

tar [参数] 打包文件名 文件

参数:

参数    含义
-c    生成档案文件,创建打包文件
-v    列出打包解档的详细过程,显示进度
-f    指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t    列出档案中包含的文件
-x    解开档案文件

注:参数前面的 “-“ 也加可不加

命令:

# 打包指定文件,生成.tar文件
tar -cvf havorld.tar havorld.txt meng.log
# 打包文件havorld目录下的所有文件,生成.tar文件
tar -cvf havorld.tar ./havorld*

# 解包.tar的文件
tar -xvf havorld.tar 

注:tar只负责打包文件但不压缩,在tar命令中增加一个参数(-z)调用gzip实现打包+压缩的功能,其扩展名一般为.tar.gz

# 打包+压缩指定文件,生成.tar.gz文件
tar -cvzf havorld.tar.gz havorld.txt meng.log
# 打包+压缩havorld目录下的所有文件,生成.tar.gz文件
tar -cvzf havorld.tar.gz ./havorld*

# 解压缩+解包.tar.gz的文件到指定目录
tar -zxvf havorld.tar.gz -C /home/havorld

bzip2压缩/bunzip2解压

由于 bzip2 与 gzip 相比,其压缩稳定性和效果都更好,用法跟gzip一样

bzip2 havorld.txt # 生成havorld.txt.bz2
bzip2 -k havorld.txt # 生成havorld.txt.bz2,并保留源文件

bunzip2 havorld.txt # 生成havorld.txt.bz2
bunzip2 -k havorld.txt # 生成havorld.txt.bz2,并保留源文件

tar与bzip2命令结合使用实现文件打包和压缩,其扩展名一般用xxxx.tar.gz2。 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

# 打包+压缩指定文件,生成.tar.gz文件
tar -jcvf havorld.tar.bz2 havorld.txt meng.log
# 打包+压缩havorld目录下的所有文件,生成.tar.gz文件
tar -jcvf havorld.tar.bz2 ./havorld*

# 解压缩+解包.tar.gz的文件到指定目录
tar -jxvf havorld.tar.bz2 -C /home/havorld