这篇将重点说明 tar 命令的使用,我们知道 tar 是用来建立,还原备份文件的工具程序,它可以加入和解开备份文件内的文件。值得注意的是,tar 是打包,不是压缩,它本身不具有压缩功能,而是调用压缩功能实现的 。
tar 命令的基本格式如下:
tar [参数选项] xxx.tar [文件]
常用的参数选项有:
- -c: 建立压缩档案
- -x:解压
- -t:查看内容
- -r:向压缩归档文件末尾追加文件
- -u:更新原压缩包中的文件
- -z:有 gzip 属性的
- -j:有 bz2 属性的
- -Z:有 compress 属性的
- -v:显示所有过程
- -O:将文件解开到标准输出
- -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
- --exclude=<范本样式>:排除符合范本样式的文件
1、.tar 文件的压缩与解压
使用举例:
# 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
tar -cvf 20220705211259.tar wheater_20220705_*.txt
# 压缩并排除掉指定文件
tar --exclude=wheater_20220705_001.txt -cvf 20220705211259.tar wheater_20220705_*.txt
# 解压
tar -xvf 20220705211259.tar
2、.tar.gz 文件的压缩与解压
使用举例:(接上面的示例)
# 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
tar -zcvf 20220705211259.tar.gz wheater_20220705_*.txt
# 压缩并排除掉指定文件
tar --exclude=wheater_20220705_001.txt -zcvf 20220705211259.tar.gz wheater_20220705_*.txt
# 解压
tar -zxvf 20220705211259.tar.gz
可以看到,.tar.gz 与 .tar 的区别就在于多加入了 -z 参数,而 -z 正是操作具有 gzip 属性的文件。值得注意的是,.tar.gz 也可以写成 .tgz ,二者本质是一样的。
3、.tar.bz2 文件的压缩与解压
使用举例:(接上面的示例)
# 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
tar -jcvf 20220705211259.tar.bz2 wheater_20220705_*.txt
# 压缩并排除掉指定文件
tar --exclude=wheater_20220705_001.txt -jcvf 20220705211259.tar.bz2 wheater_20220705_*.txt
# 解压
tar -jxvf 20220705211259.tar.bz2
同样的,.tar.bz2 与 .tar 的区别就在于多加入了 -j 参数,而 -j 也正是操作具有 bz2 属性的文件。
4、.tar.Z 文件的压缩与解压
使用举例:(接上面的示例)
# 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
tar -Zcvf 20220705211259.tar.Z wheater_20220705_*.txt
# 压缩并排除掉指定文件
tar --exclude=wheater_20220705_001.txt -Zcvf 20220705211259.tar.Z wheater_20220705_*.txt
# 解压
tar -Zxvf 20220705211259.tar.Z
到这里,规律就显而易见了。在 .tar 后缀的基础上是可以选择 .gz、.bz2、.Z 等方式,继续进行压缩和解压操作的,只是需要加入对应的参数实现而已。
5、.z 文件的压缩与解压
gz 和 bz2 的内容在上一篇已经说明过了,不再赘述,那么,Z 参数是什么呢?-Z 参数适用于通过 tar 压缩和解压具有 compress 属性的文件。
这里,顺便说明下,单纯 .Z 文件的打包和解压,打包使用 compress 命令(压缩后生成 .Z 文件,这是一种很原始的压缩方式,实际上不推荐使用),解压使用 uncompress 命令,演示如下:
# 压缩:生成wheater_20220705_001.Z
compress wheater_20220705_001.txt
# 解压:直接解开生成wheater_20220705_001.txt
uncompress wheater_20220705_001.Z
需要注意的是:使用这种压缩和解压,需要先下载有关插件,apt install ncompress,不然会提示报错。
6、.rar 文件的压缩与解压
这种格式常见于 Windows 系统上的压缩和解压操作,而在 Linux 系统上使用需要先下载有关rar插件,apt install rar。
rar 命令通过使用 -a 参数实现压缩成 .rar 文件,使用 -x 参数实现解压 .rar 文件,演示如下:
# 压缩:
rar -a wheater_07705.rar wheater_20220705_001.txt
# 解压:
unrar -x wheater_07705.rar
7、.7z 文件的压缩与解压
7z 是一种可以使用多种压缩算法进行数据压缩的档案格式,拥有极高的压缩比。这种格式在 Linux 系统上使用需要先下载有关插件才能使用,那么,如何下载安装呢?
如果是 Ubuntu 系统,使用以下命令:
sudo apt-get install p7zip
如果是 Centos 系统,使用以下命令:
yum install p7zip
使用起来感觉与 rar 比较相似,也是通过 -a 参数压缩,常用参数说明:
- a:压缩操作,添加文件/目录到压缩包
- -t:指定压缩类型,可不指定,默认压缩类型是7z,也可以指定. tar.bz2 等压缩类型
- -mx=数字:指定极限的压缩比,默认为5
- -r:递归操作,将指定目录下的所有文件和子目录一并处理
使用演示如下:
# 压缩:
7za a -t7z -r -mx=9 wheater_all.7z wheater_*.txt
-x 参数解压,常用参数说明:
- x:解压操作,推荐使用 a 参数,而不建议使用 e 参数(e 参数会将所有文件都解压到根目录下,而不是原有的文件目录下)
- -r:递归操作,将指定目录下的所有文件和子目录一并处理
- -o:解压到指定目录,注意该参数后直接跟上指定目录,无空格!!!
# 解压:
7za x wheater_all.7z -r -o/temp/
最后
这里,梳理了更高级的压缩与解压的命令,有系统自带的 tar 系列命令,也有compress/uncompress、rar/unrar、7za 等第三方插件的使用。