这篇文章为大家介绍一下在 Linux 系统中打包压缩的命令,在 Linux 系统里,tar
是将多个文件打包在一起,并且还可以实现解压打包的文件的命令。在平时也会经常使用,这个命令不但可以实现对多个文件一块进行打包,还可以实现对多个文件打包后进行压缩。打包是指将一大堆文件或目录变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
语法格式:
tar [option] [file]tar [选项] [文件或目录]
在说 tar
命令的常用参数之前,需要先说明的是:tar
命令选项的使用是比较特殊的,因为在平时大家使用 CentOS 系统的时候,很多命令的参数都是需要跟上 “-” 的,这里 tar
就比较特殊了,它加横杠和不加横杠的效果都是一样的,所以对于 tar
来说,加或不加横杠符号都是可以的。关于 tar
选项参数说明如下:
z:通过 gzip 压缩或解压
c:创建新的 tar 包
v:显示详细的 tar 命令执行过程
f:指定压缩文件的名字
t:不解压查看 tar 包的内容
p:保持文件的原有属性
P(大写):以绝对路径打包,危险参数
j:通过 bzip2 命令压缩或解压
x:解开 tar 包
C:指定解压的目录路径
从上面的参数介绍中,其实不难看出,tar 包也是分很多种类的,如下:
-
.tar 打包格式:tar 程序打包的文件,是未经过压缩的 -
.z 格式:compress 程序打包压缩的文件 -
.gz 压缩格式:gzip 程序压缩的文件 -
.bz2 压缩格式:bzip2 程序压缩的文件 -
.tar.gz 打包压缩:tar 程序打包的文件,并经过 gzip 进行压缩的文件 -
.tar.bz2 打包压缩:tar 程序打包的文件,并经过 bzip2 进行压缩的文件
把文件直接压缩成 “.tar.gz” 和 “.tar.bz2” 格式,才是 Linux 中最常用的压缩方式,这是大家一定要掌握的压缩和解压缩方法。现在已经知晓了常用的参数选项,那么下面根据一些具体的示例来加深了解。
基础示例:
$ cd /test
$ mkdir ./html 创建一个测试目录
$ cd html/
$ touch {1..100}.html
$ cd .. 进入到目标目录的上一级目录进行打包
$ tar zcvf www.tar.gz ./html/
./html/
./html/68.html
./html/1.html
./html/50.html
./html/70.html
./html/60.html
......
选项 v
会显示打包的过程,上面只截取了部分,大家需要记住常用的打包命令组合 zcvf
,如果不想显示打包过程则可以省略 v
选项。
查看压缩包内的内容:
$ tar ztvf www.tar.gz
drwxr-xr-x root/root 0 2020-11-15 23:40:15 ./html/
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/68.html
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/1.html
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/50.html
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/70.html
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/60.html
-rw-r--r-- root/root 0 2020-11-15 23:40:15 ./html/30.html
使用选项 t
不解压就可以查看压缩包的内容,选项 v
可以显示文件的属性。
现在我们已经把 html 目录进行打包,那么应该怎么解包呢?其实也很简单:
$ tar zxvf www.tar.gz -C /tmp
选项 C
指定压缩路径,若不加 C
则默认会解压到当前目录。如果不像看到太多的输出,则可以去掉 v
选项,功能不受影响。同时 z
选项也是可以省略的,只要涉及到解压的操作,tar
命令都能够自动识别压缩包的压缩类型,但是压缩时必须要加上 z
选项。
tar
命令是一个使用频率较高的命令,大家一定要熟练掌握。上面列举的例子也比较基础,感兴趣的同学可以对比着上面的示例以及选项参数来学习和使用。