【命令】Tar以及其他压缩工具学习笔记

前言

在 Linux 和 MacOS 系统下,常见压缩包的压缩与解压方法。

Tar

  • tar是Unix和类Unix系统上的归档打包工具,可以将多个文件合并为一个文件,打包后的文件名亦为tar。目前,tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,目前是POSIX.1-2001。维基百科

基本参数

-c--create:建立新的备份文件
-x--extract--get:从备份文件中还原文件
-v--verbose:显示指令执行过程
-f <file>--file <file>:指定备份文件。必须放在所有选项之后,因为这个选项后面要加参数
-t:显示归档中的文件清单
-C <file>:指定解压路径
-z--gzip--ungzip:通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz

Gzip是一种压缩文件格式并且也是一个在类 Unix 上的一种文件解压缩的软件,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1,1993年2月,发布了1.0版本。维基百科

-Z--compress--uncompress:通过compress指令处理备份文件

Linux compress命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。菜鸟笔记

-j:通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2

bzip2是Julian Seward开发并按照自由软件/开源软件协议发布的数据压缩算法及程序。Seward在1996年7月第一次公开发布了bzip2 0.15版,在随后几年中这个压缩工具稳定性得到改善并且日渐流行,Seward在2000年晚些时候发布了1.0版。维基百科

-J:通过xz指令压缩/解压缩文件

xz是一个使用LZMA/LZMA2压缩算法的无损数据压缩文件格式。维基百科

基本命令

<file_name>:需要压缩/解压的文件或目录名
<new_file_name>:新创建的压缩文件目录及文件名
<new_file_directory>:新创建的压缩文件存放目录

通用解压命令

1
tar -xf <file_name>

.tar

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
tar -cvf <new_file_name>.tar <file_name>
解压

<file_name>:需要被解压的文件名

1
tar -xvf <file_name>.tar

.tar.gz

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
tar -czvf <new_file_name>.tar.gz <file_name>
解压

<file_name>:需要被解压的文件名

1
tar -xzvf <file_name>.tar.gz

.tar.bz2

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
tar -cjvf <new_file_name>.tar.bz2 <file_name>
解压

<file_name>:需要被解压的文件名

1
tar -xjvf <file_name>.tar.bz2

.tar.Z

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
tar -cZvf <new_file_name>.tar.Z <file_name>
解压

<file_name>:需要被解压的文件名

1
tar -xZvf <file_name>.tar.Z

.tar.xz

一步压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
tar -cJvf <new_file_name>.tar.xz <file_name>
一步解压

<file_name>:需要被解压的文件名

1
tar -xJvf <file_name>.tar.xz
两步压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
2
tar -cvf <new_file_name>.tar <file_name>
xz -z <new_file_name>.tar
两步解压

<file_name>:需要被解压的文件名

1
2
xz -d <file_name>.tar.xz
tar -xvf <file_name>.tar.xz

GunZip

.gz

解压

1
gunzip <file_name>.gz

Zip

ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨,他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。维基百科

安装

  • MacOS
1
2
brew install zip
brew install unzip

基本参数

-n:解压缩时不覆盖原有的文件
-o:解压缩时覆盖原有的文件
-d:指定文件解压后存储的目录
-v:显示详细信息
-r:递归操作

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
zip -r <new_file_name>.zip <file_name>

解压

  • 解压.zip文件在当前目录下
1
unzip <file_name>.zip
  • 解压.zip文件在指定目录下,如有重名不覆盖
1
unzip -n <file_name>.zip -d <dir>
  • 解压.zip文件在指定目录下,如有重名则覆盖
1
unzip -o <file_name>.zip -d <dir>

Rar

RAR是一种专利文件格式,用于数据压缩与归档打包,开发者为尤金·罗谢尔,RAR的全名是”Roshal ARchive”,即”罗谢尔的归档”之意。首个公开版本RAR 1.3发布于1993年。维基百科

安装

MacOS

  • 安装rar软件包后,会同时得到rar命令和unrar命令
1
brew install rar

基本参数

-a:添加文件到压缩档案
-e:将文件解压到当前目录
-x:使用完整路径提取文件
-l:列出存档内容
-v:详细列出存档

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
rar a <new_file_name>.rar <file_name>

解压

<file_name>:需要被解压的文件名

1
unrar e <file_name>.rar
  • 解压.rar文件到指定目录

<dir>:指定解压后的文件存放路径

1
unrar e <file_name>.rar <dir>

7z

在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的文件格式。该格式最初被7-Zip实现并采用,但是这种文件格式是公有的,并且7-Zip软件本身亦在GNU宽通用公共许可证协议下开放源代码。当前LZMA软件开发工具包的最新版本为v19.00。维基百科

7za

安装

Linux
1
sudo apt-get install p7zip
MacOS
1
brew install p7zip

基本参数

-a:添加文件/文件夹到压缩包
-t:指定压缩类型,默认压缩类型就是7z
-x:解压到当前目录
-e:解压到根目录
-o:指定解压到的目录
-r:递归操作

压缩

  • 压缩文件为.7z

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
7za -a -r <new_file_name>.7z <file_name>

解压

<dir>:指定解压后的文件存放路径

1
7za -x -r <file_name>.7z -o <dir>

7zz

安装

MacOS
  • sevenzip7zip7-zip均为7zz的软件包名
1
brew install sevenzip

压缩

<new_file_name>:生成的压缩文件名
<file_name>:需要被压缩的文件名

1
7zz a <new_file_name>.7z <file_name>

完成

参考文献

开源中国
CSDN——一个从入门到放弃再到改行的工程师
菜鸟教程
CSDN——Locutus
REILLET的博客
CSDN——霸王凯旋
IDC严选