Linux tar gzip bzip zip打包 压缩 解压 命令

每次拿到压缩文件都不知道怎么解包,还在拿着后缀去百度?快快收下这篇文章吧,涵盖所有压缩格式,一站解决。

打包压缩格式

  • .zip
  • .gz
  • .bz2
  • .tar
  • .tar.gz
  • .tar.bz2

.tar格式

打包

$ tar -cvf 打包输出文件 源文件or文件目录
  • 参数说明
-c : 打包
-v或--verbose: 显示打包过程
-f : 指定打包后的文件名

解压文件

$ tar -xvf 打包文件

## 查看内部有啥文件
$ tar -tv 打包文件
  • 参数说明
-x或--extract或--get: 从备份文件中还原文件;
-v : 展示过程
-t或--list : 列出备份文件的内容;

.gz 格式

压缩文件

## 注意:源文件会消失!
$ gzip 源文件

## 压缩文件,源文件保留
$ gzip -c -3 源文件 > 压缩文件.gz

## 递归的压缩目录
$ gzip -rv 目录
  • 参数说明
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;

解压缩

$ gzip -d 压缩文件

$ gunzip 压缩文件

## 详细显示中压缩的文件的信息,并不解压
$ gzip -l *

## 把当前目录中中每个压缩的文件解压,并列出详细的信息
$ gzip -dv ./*
  • 参数说明
-l或——list:列出压缩文件的相关信息;
-d或--decompress或----uncompress:解开压缩文件;

gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

.tar.gz 格式

其实,.tar.gz 格式是先将文件或目录打包文 .tar 格式,再压缩为 .gz 格式

压缩

$ tar -zcvf 压缩文件名.tar.gz 源文件

参数说明

-z或--gzip或--ungzip:通过`gzip`指令处理备份文件; 也就是 `.tar.gz`

解压

$ tar -zxvf 压缩包名.tar.gz

参数说明:

-z : 解压缩
-t : 查看压缩保内文件,但是不解压缩

.bz2 格式

压缩

## 源文件会移除
$ bzip2 源文件

## 保留源文件
$ bzip2 -k 源文件
  • 参数说明
-d或——decompress:执行解压缩;
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;

bzip2 不能压缩目录

解压缩

## 解压缩,默认不保留压缩文件。加 -k 可保留压缩文件
$ bzip2 -d 压缩文件

## 解压到标准输出:
$ bzip2 -dc filename.bz2 > filename

## 检查展示压缩文件内容,不解压
$ bzip2 -tv zipFile.bz2
  • 参数说明
-d或——decompress:执行解压缩;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;

.tar.bz2 格式

.tar.bz2 格式是先将文件或目录打包文 .tar 格式,再压缩为 .bz2 格式

压缩

tar -jxvf 压缩包名.tar.bz2 源文件or文件目录
  • 参数说明
-j : 使用`bzip2`处理,压缩为 .tar.bz2 格式

解压

$ tar -jxvf 压缩包名.tar.bz2
  • 参数说明:
-x : 解压
-t : 查看压缩保内文件,但是不解压缩
-C : 指定解压的目录(注意,该选项必须放在后面)

.zip 格式

一般Linux没有默认安装 zip 软件,需要手动安装 zip 以及 unzip 两个软件!

## debian,ubuntu
$ apt-get install zip unzip -y

## centos
$ yum install zip unzip -y

## mac os 目测有预装

压缩

$ zip 压缩文件名.zip 源文件

## 压缩目录
$ zip -r 压缩文件名.zip 文件夹目录

解压缩

$ unzip 压缩文件 [-d <文件解压缩后所要存储的目录>]

参考

  • https://man.linuxde.net/tar
  • https://man.linuxde.net/bzip2
  • https://segmentfault.com/a/1190000014479275