tar
打包软件在使用Linux的过程中,你可能会看见各种各样的压缩包文件,比如tar.gz
(最常见的 tar 压缩包格式)、tar.bz2
、tar.xz
、tar
等等。这些文件都可以使用tar
命令打包。
在linux上也有些常见的图形化压缩包管理器,比如
Ark
,但是它们远不及命令行工具的快速和稳定性。
tar压缩包都有一个显著的特征,文件名中都带有一个 .tar
(tgz 等部分格式除外),但是后面的 .gz
等等又是什么呢?其实,tar 本身并不是一个压缩格式,它只是简单的把所有文件和文件夹打包到一起,而后面的 .gz
、.bz2
、.xz
等等才是压缩的格式。
关于其它格式的压缩包,比如
zip
、rar
等,可以使用其它命令,比如unzip
、unrar
等。
绝大部分的linux发行版都预置了这个命令,你通常无需额外安装,直接使用便可。
tar
命令tar
命令用于打包文件和目录,可以将多个文件和目录打包成一个文件,也可以将一个打包文件解压成多个文件和目录。
tar
命令的基本语法如下:
tar [选项] [文件或目录]
下面是常见的选项:
-c
:创建新的压缩文件。-x
:解压文件。-t
:列出压缩文件中的所有文件。-z
:使用gzip压缩或解压 (.tar.gz
格式)。-j
:使用bzip2压缩或解压 (.tar.bz2
格式)。-v
:显示操作的详细信息。-f
:指定压缩包的文件名。-C
:指定解压目录。上面的内容看不懂也没关系,下面会一一介绍用法。
tar -zcvf archive.tar.gz file_or_dir1 [file_or_dir2 ...]
上面的命令会将 file_or_dir1
、file_or_dir2
等文件或者目录打包成一个名为 archive.tar.gz
的压缩包。
在 tar 中,是可以把多个
-
选项连用的,例如-z
和-c
可以写成-zc
(顺序无所谓),但是需要保证像-f
这样带有参数的选项放在最后。除了 tar 命令,很多linux的基本命令都可以这么用,包括我们之前学习的 cp, ls 等命令。
tar -zxvf archive.tar.gz
上面的命令会将 archive.tar.gz
压缩包解压到当前目录。
这两个用法应该和是我们平时见得最多的用法了。熟练掌握这几个用法,你就可以安装绝大部分的压缩包形式的linux软件了。
接下来,我们来一起看看 tar 都有什么魔力吧。
下面会有一个常见的参数
-v
,表示显示操作的详细信息。它会列出操作的所有文件。如果不加上这个参数,我们就看不到任何输出。当然,你也可以省略。
首先,我们进行压缩包操作,都要有个压缩包吧,所以下面的所有命令,都要加入 -f 你的压缩包名字
这个选项指定操作的压缩包文件。
我们前面提到了,tar只是个打包的格式,并不能压缩。但是,tar可以调用其它的压缩工具,比如gzip、bzip2、xz等,来对打包的文件进行压缩。
下面是一些常用的参数:
-z
:使用gzip压缩或解压 (.tar.gz
格式)。-j
:使用bzip2压缩或解压 (.tar.bz2
格式)。-J
:使用xz压缩或解压 (.tar.xz
格式)。若列出文件,可以省略压缩格式,后面会讲到。
要创建压缩包,我们可以使用 -c
选项。
例如上文的
tar -zcvf archive.tar.gz file_or_dir1 [file_or_dir2 ...]
就是创建一个名为 archive.tar.gz
的压缩包,使用 gzip 压缩格式。
有了压缩包,我们该怎么验证,或者别人发来了一个压缩文件,我们怎么查看里面的内容呢?
我们可以使用 -t
选项。
tar -ztvf archive.tar.gz
上面的命令会列出 archive.tar.gz
压缩包中的所有文件。
解压压缩包,我们可以使用 -x
选项。
例如上文的
tar -zxvf archive.tar.gz
上面的命令会将 archive.tar.gz
压缩包解压到当前目录。
值得注意的是,这个操作不会新建一个文件夹。所以在解压之前,建议先看一看压缩包内是否有一层文件夹。尤其是当前目录文件比较多时,容易把文件解压到错误的位置。
如果我们需要改变解压的位置,我们可以使用 -C
选项,例如解压到新建的文件夹。
例如上文的
tar -zxvf archive.tar.gz -C ./archive
上面的命令会将 archive.tar.gz
压缩包解压到当前目录下的 archive
文件夹中。
如果我们需要向压缩包中添加文件,我们可以使用 -r
选项。
例如上文的
tar -rvf archive.tar.gz file_or_dir1 [file_or_dir2 ...]
上面的命令会将 file_or_dir1
、file_or_dir2
等文件或者目录添加到 archive.tar.gz
压缩包中。
如果我们需要从压缩包中删除文件,我们可以使用 --delete
选项。
tar -vf archive.tar.gz --delete file_or_dir
上面的命令会从 archive.tar.gz
压缩包中删除 file_or_dir
。
如果我们需要更新压缩包中的文件,我们可以使用 -u
选项。这个选项类似于 -r
,只不过是替换。
tar -uf archive.tar.gz file_or_dir1 [file_or_dir2 ...]
tar 的用法很多,但是常见的用法也就那么几种。多看,多用,你很快就能掌握。
tar 是一个非常强大的工具。这个命令使用十分复杂,这里也难以介绍完全。下面的课后作业可以让你基本理解这个命令:
使用前文提到的 nano
新建两三个个文件,文件名和内容都随意。
使用 tar 命令以 gzip 格式压缩到一个压缩文件。
把这个文件发给小伙伴,当然也可以发到论坛里。
使用 tar 命令查看并且解压这个压缩包里的文件
使用 cat 命令,看看文件里写的是什么
study-area-cn