Categories: Shell编程

linux tar命令详解+示例

Linux系统中经常会碰到.tar.gz 或 tgz 后缀的压缩文件,所以你需要很熟练的知道如何解压这些文件,最好也需要知道如何创建这种压缩文件。

在本文中,我们将学习 Linux 中的 tar 命令来创建压缩或未压缩的存档文件。我们还将介绍如何使用 tar 命令提取文件。

Linux 中的 tar 是什么

tar 命令在 Linux 中用于创建包含一组文件或单个文件的压缩或未压缩档案。tar 实用程序可以创建.tar存档(未压缩)并使用 xz、gzip 和 bzip2 等压缩算法对其进行压缩。

压缩存档文件或称为 tarball 将具有扩展名,例如 .tar.gz(gzip 压缩)和 .tar.bz2(bzip2 压缩)。

如何使用 tar 命令

tar 命令通常用于将文件和目录压缩到单个存档中。Tar 可以使用不同的压缩算法来创建具有 .tar.gz 和 .tar.bz2 等扩展名的 tarball。

tar 命令的基本语法:

tar [options][archive-file] [file or directory to be archived]

一些重要的 tar 选项是:

选项 描述
-c 创建存档文件
-v 详细模式,创建存档文件时显示进度
-x 提取存档文件
-z 告诉 tar 命令使用 gzip 压缩算法压缩存档
-j 告诉 tar 命令使用 bzip2 压缩算法压缩存档
-t 显示归档文件中的文件
-r 将文件或目录添加到 tar 文件
-f 可以指定存档文件名

要在 Linux 中压缩目录或文件,请使用以下语法:

tar -czvf new-archive-file.tar.gz /path/to/directory-or-the-file

例如要压缩当前目录中命名Projects的目录并用 name 保存project-archive-tar.gz,输入:

tar -czvf project-archive.tar.gz Projects

如果您收到一条消息说“tar:从成员名称中删除前导 `/’”,这只是您可以使用 -P 选项或删除绝对路径的信息。示例:tar -czvf new-archive-file.tar.gz -P /path/to/directory-or-the-file

Tar 命令示例

让我们通过示例进一步了解 Linux Tar 命令及其用法。

创建一个未压缩的 tar 文件

-cvf使用选项创建没有任何压缩的存档文件。

tar -cvf move.tar file.txt file2.txt file2.txt

这会创建 tar 文件,它用于捆绑一堆文件或目录

压缩整个目录

您可以告诉 tar 命令使用各种算法创建带有压缩的存档文件。您需要使用-zgzip-j选项和 bzip2 算法选项。

例如,要压缩projects使用 gzip 命名的目录并将文件另存为projectbackup.tar.gz,请键入:

tar -czvf projectbackup.tar.gz /home/foo/documents

上述命令将在当前目录中创建一个名为 projectbackup.tar.gz 的存档文件。

您可以使用替换-z选项-j来使用 bzip2 算法进行压缩。

压缩多个目录

以下命令将目录压缩为compressed-file.tar.gz以当前目录命名的存档文件:

tar -czvf compressed-file.tar.gz /path/to/directory1 /path/to/directory2

压缩多个文件

要将多个文件压缩为一个存档文件,请键入:

tar -czvf projectbackup.tar.gz doc1.txt doc2.txt doc3.pdf

创建存档文件时排除目录

压缩时,您可以使用 –exclude 开关排除特定目录或文件。

tar -czvf projectbackup.tar.gz Projects --exclude=/home/linuxopsys/CSS --exclude=  /home/linuxopsys/data  --exclude=*.jpg

排除开关还接受诸如--exclude=*.jpg.

解压 tar.gz 压缩文件

要提取或解压缩名为compressed-file.tar.gz 的存档文件,请运行以下命令:

tar -xzvf compressed-file.tar.gz 

存档文件的内容将被提取到当前目录。

将文件提取到特定目录

上面我们看到压缩包的内容被解压到了当前目录。如果您想将存档提取到特定目录使用-C选项。

tar -xzvf compressed-file.tar.gz -C /home/linuxopsys/documents

列出存档文件的内容

您想查看存档文件内容怎么样?无需解压即可查看 tar 文件的内容。

以下命令列出名为 tar 归档文件的内容compressed-file.tar.gz

tar -tvf compressed-file.tar.gz

要在存档文件中搜索特定文件名,请键入:

tar -tvf compressed-file.tar.gz filename 

从存档文件中仅提取特定文件

列出归档文件内容后,如果您想提取特定文件,请使用以下命令:

tar -xzvf compressed-file.tar.gz "file1" "file2"

您还可以使用模式来匹配和提取一组特定的文件:

tar -xzvf compressed-file.tar.gz --wildcards “*.jpg”

将文件添加到现有的 tar 文件

使用选项 -r 将文件添加到现有存档文件。存档文件应该是 .tar 文件。

tar -rvf compressed-file.tar newfile

注意:无法将文件添加到压缩存档文件中。解决方法是先 gunzip,然后将文件添加到 .tar 文件,然后 gzip 该文件。

结论

在本教程中,我们学习了如何在 Linux 中使用 tar 命令。我们已经通过可用示例解释了 tar 选项。有关更多信息,请使用tar 手册页或直接man tar从命令行键入。

4.5
02
Ubuntu下如何安装php8.0
linux命令行杀死进程
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

PHP Composer如何安装?

PHP Composer是PH…

11小时 ago

MacOS上Missing xcrun的问题

在使用MacOS进行编程或开发…

13小时 ago

CodeGeeX是一款基于大模型的全能AI编程助手

CodeGeeX是一个面向开发…

13小时 ago

MySQL覆盖索引详解

在数据库性能优化中,索引是一个…

17小时 ago

后端程序员必备:SQL优化的20条建议

SQL优化查询对于后端程序员来…

17小时 ago

如何通过SSH克隆GIT仓库?

在使用git进行版本控制时,克…

18小时 ago