Linux如何使用tar命令压缩和解压文件

Linux上的tar命令通常用于创建.tar.gz或.tgz存档文件,也称为“tarballs”。这个命令有大量的选项,但是你只需要记住几个字母就可以用tar快速创建压缩文件,也可以解压生成的压缩文件。

Linux的通用发行版中包含的 tar命令集成了压缩功能。它可以创建一个.tar存档文件,然后在一个命令中使用gzipbzip2来压缩它。这就是生成的压缩文件后缀是.tar.gz、.tar、bz2文件的原因。

压缩整个目录或单个文件

在Linux上,使用以下命令压缩整个目录或单个文件。它还将压缩指定目录内的所有其他目录,也就是说,可以递归所有子目录。

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

tar的压缩选项含义是:

  • c: 创建压缩文档(Create。

  • z: 以gzip压缩归档文件。

  • v: 在终端显示压缩进度,也称为“verbose”模式。v在是可选的,可以不使用。

  • f: 指定压缩文件的文件名(filename)。

假设在当前目录中有一个名为“stuff”的目录,希望将其保存到一个名为archive.tar.gz的文件中。可以运行以下命令:

tar -czvf archive.tar.gz stuff

或者,假设在当前系统上有一个目录/usr/local/something,您想将它压缩到一个名为archive.tar.gz的文件。您可以运行以下命令:

tar -czvf archive.tar.gz /usr/local/something

img

一次压缩多个目录或文件

虽然tar经常用于压缩单个目录,但也可以使用它来压缩多个目录或者多个单独的文件,或者多文件、多目录同时压缩。我们需要提供一个文件或目录的列表。

例如,假设你想压缩/home/ubuntu/Downloads目录、/usr/local/stuff目录和/home/ubuntu/Documents/notes.txt文件,只需运行以下命令:

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

img

如何排除目录和文件

在某些情况下,可能希望压缩整个目录,但不包括某些文件和目录。我们需要为每个你想要排除的目录或文件附加一个--exclude开关来做到这一点。

例如,假设你想压缩/home/ubuntu,但是你不想压缩/home/ubuntu/ downloads/home/ubuntu/.cache缓存目录,可以运作下面的命令:

tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

--exclude开关功能非常强大,你不仅可以使用目录名和文件名,还是使用匹配模式。你可以用它做更多的事情。例如,可以使用以下命令对整个目录进行归档,并排除所有.mp4文件:

tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4

img

使用bzip2压缩

gzip压缩是最常用来,但是tar也支持bzip2算法压缩,通常命名为.tar.bz2或者.tar.bz或者.tbz文件。如果要使用bzip2算法,只需将这里命令中gzip的-z替换为bzip2的-j

Gzip速度更快,但通常它压缩量少一些,因此得到的文件稍微大一些。Bzip2速度较慢,但它压缩得更多一些,因此得到的文件更小一些。Gzip也更常见,一些精简的Linux系统默认支持Gzip,但不支持bzip2。一般来说,gzip和bzip2实际上是相同的,两者的工作方式类似。

使用bzip2压缩举例:

tar -cjvf archive.tar.bz2 stuff

img

解压归档文件

把文件压缩以后,还可以使用tar命令对其进行解压缩。下面的命令将把archive.tar.gz的内容解压缩到当前目录。

tar -xzvf archive.tar.gz

这与我们上面使用的存档创建命令相似,只是' -x '开关取代了' -c '开关。x表示extract

你可能希望将归档文件的内容解压缩到特定目录。在命令的末尾附加-c 开关。例如,下面的命令将解压archive.tar.gz文件的内容到/tmp目录。

tar -xzvf archive.tar.gz -C /tmp

如果该文件是一个bzip2压缩文件,则将上述命令中的z替换为j

img


总结

这是tar命令最简单的用法。该命令包括大量的附加选项,因此我们不可能在这里列出所有选项。可以在shell中运行info tar命令,获得更多的信息,查看tar命令的详细信息页面,完成后,按q键退出信息页面,也可以阅读tar的在线手册

如果使用的是图形化Linux桌面,可以使用文件管理器来创建或提取.tar文件。在Windows上,你可以用免费的7-Zip工具提取和创建.tar压缩文件。

source: https://www.howtogeek.com/248780/how-to-compress-and-extract-files-using-the-tar-command-on-linux/


views:2993