Linux上的tar命令通常用于创建.tar.gz或.tgz存档文件,也称为“tarballs”。这个命令有大量的选项,但是你只需要记住几个字母就可以用tar快速创建压缩文件,也可以解压生成的压缩文件。
Linux的通用发行版中包含的 tar命令集成了压缩功能。它可以创建一个.tar存档文件,然后在一个命令中使用gzip
或bzip2
来压缩它。这就是生成的压缩文件后缀是.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
一次压缩多个目录或文件
虽然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
如何排除目录和文件
在某些情况下,可能希望压缩整个目录,但不包括某些文件和目录。我们需要为每个你想要排除的目录或文件附加一个--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
使用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
解压归档文件
把文件压缩以后,还可以使用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。
总结
这是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/