【命令】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 | tar -cvf <new_file_name>.tar <file_name> |
两步解压
<file_name>
:需要被解压的文件名
1 | xz -d <file_name>.tar.xz |
XZ
.xz
压缩
1 | xz -z <file_name> |
解压
1 | xz -dk <file_name>.xz |
GunZip
.gz
解压
1 | gunzip <file_name>.gz |
Zip
ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨,他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。维基百科
安装
- MacOS
1 | brew install zip |
基本参数
-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
sevenzip
、7zip
、7-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严选 CSDN——菜鸟fox