Linux tar命令教程:文件打包和压缩的神器(附案例详解和注意事项)

我要下东西噢 2024-06-11 12:37:02 阅读 75

Linux tar命令介绍

tar(Tape ARchive),用于在linux中打包和备份文件。它可以将多个文件和目录打包成一个tar文件,也可以从tar文件中提取文件和目录。此外,它还可以与gz,bzip2,xz等压缩工具结合使用,进行文件和目录的压缩和解压。

Linux tar命令适用的Linux版本

tar命令在各个Linux发行版中均通用。包括但不限于 Ubuntu、Debian、Fedora、CentOS、openSUSE、Arch Linux 等。针对不同的发行版,安装方法可能稍有不同。对于基于Debian的系统,可以使用apt-get命令;对于基于Red Hat的系统,可以使用yum命令(CentOS7)或dnf命令(CentOS8)。但实际上,大多数Linux发行版在安装时已经默认安装了tar命令。

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install tar # Debian/Ubuntu[linux@bashcommandnotfound.cn ~]$ sudo yum install tar # CentOS 7[linux@bashcommandnotfound.cn ~]$ sudo dnf install tar # CentOS 8

Linux tar命令的基本语法

tar命令的基本语法为:

tar [主选项+辅选项] [文件或目录]

在这里,主选项通常只能选择一个,用来指定tar命令进行的操作类型,比如创建新的归档文件、列出归档文件内容、从归档文件中提取内容等。辅选项可以为零或多个,用来指定主选项操作的具体方式。

Linux tar命令的常用选项或参数说明

选项 描述
-c 创建新的归档文件
-x 提取文件
-t 列出归档文件内容
-u 添加文件
-f 指定文件名
-v 冗余输出
-z gzip压缩或解压
-j bzip2压缩或解压
-J xz压缩或解压
-P 绝对路径
-C 切换到指定目录
–exclude 排除文件

Linux tar命令实例详解

实例1:创建tar文件

[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar file1 file2

在上述示例中,我们使用-c选项创建一个新的tar归档,-v选项让tar在创建归档时显示有关其进度的信息,-f选项后面跟着我们想要创建的归档的名称,最后是我们想要添加到归档中的文件名。

实例2:从tar文件中提取文件

[linux@bashcommandnotfound.cn ~]$ tar -xvf archive.tar

在这个示例中,我们使用-x选项从一个归档中提取文件,-v选项显示提取过程的信息,-f选项后跟着包含我们想要提取的文件的归档的名称。

实例3:创建压缩的tar文件

在Linux中,tar命令可以用来压缩文件。可以使用’z’选项,通过gzip进行压缩;或者使用’j’选项,通过bzip2进行压缩。下面是创建.gz和.bz2压缩文件的示例。

[linux@bashcommandnotfound.cn ~]$ tar -cvfz archive.tar.gz file1 file2[linux@bashcommandnotfound.cn ~]$ tar -cvfj archive.tar.bz2 file1 file2

在上述示例中,我们使用‘c’选项创建一个新的tar归档,‘v’选项让tar在创建归档时显示有关其进度的信息,‘f’选项后面跟着我们想要创建的归档的名称,‘z’或‘j’选项指示tar命令用gzip或bzip2进行压缩,最后是我们想要添加到归档中的文件名。

实例4:从压缩的tar文件中提取文件

提取压缩的tar文件与提取tar文件基本相同,只是需要额外指明被解压的文件是gzip还是bzip2压缩的。使用’z’选项提取.gz文件,或者使用’j’选项提取.bz2文件。例如:

[linux@bashcommandnotfound.cn ~]$ tar -xvfz archive.tar.gz[linux@bashcommandnotfound.cn ~]$ tar -xvfj archive.tar.bz2

上述命令在执行时将提取存档文件,并使用gzip或bzip2进行解压缩。

实例5:排除特定文件

假设你有一堆文件需要压缩为归档文件,但是其中的一些文件需要排除。你可以使用--exclude选项来指定排除特定的文件或者文件类型。例如:

[linux@bashcommandnotfound.cn ~]$ tar -cvfz archive.tar.gz --exclude '*.txt' *

上述命令将压缩当前目录下的所有文件(‘*’),但是它将排除所有的txt文件。

实例6:查看tar文件内容

如果你想查看tar归档文件中的内容,而不提取它们,你可以使用’t’选项。例如:

[linux@bashcommandnotfound.cn ~]$ tar -tvf archive.tar

这个命令会显示出tar归档文件中的所有文件和目录,但并不会提取它们。

实例7:添加文件到已有的tar文件

如果你想新添加一些文件到已经存在的tar归档文件中,你可以使用’r’选项。请注意,这个选项不能用于压缩过的tar文件。例如:

[linux@bashcommandnotfound.cn ~]$ tar -rvf archive.tar newfile

上述命令会将newfile添加到现有的归档文件archive.tar中。

实例8:从tar文件中删除文件

如果你想从存在的tar文件中删除一些文件,你可以使用’–delete’选项。和’r’选项一样,该选项也不能用于压缩过的tar文件。例如:

[linux@bashcommandnotfound.cn ~]$ tar --delete -f archive.tar unwantedfile

以上命令将会从archive.tar中删除unwantedfile。注意这个操作是不可逆的,所以在执行前请确保你真的要删除这个文件。

实例9:修改tar文件中文件的权限

tar命令的’–mode’选项可用于在添加文件到tar中时修改其权限。例如:

[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar --mode='u=rwX,g=rwX,o=r' file1 file2

这个命令在归档文件archive.tar中创建文件,同时给所有的用户和组赋予读写权限,对所有者还额外赋予执行权限。

实例10:创建包含整个目录的tar文件

tar命令也可以用于归档整个目录及其子目录和文件。例如:

[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar mydirectory/

这个命令会将mydirectory目录及其所有子目录和文件归档到archive.tar中。

实例11:使用通配符来创建tar文件

如果你想把所有具有相同过滤条件的文件都归档到一个tar文件中,你可以使用诸如’*‘或者’?'这样的通配符。例如:

[linux@bashcommandnotfound.cn ~]$ tar -cvf textfiles.tar *.txt

这个命令将把所有.txt文件归档到textfiles.tar中。

实例12:解压tar文件到指定目录

如果你想将tar文件解压到指定的目录中,而不是当前目录,你可以使用’-C’选项。例如:

[linux@bashcommandnotfound.cn ~]$ tar -xvf archive.tar -C /path/to/directory

在上述示例中,tar文件将会被解压到/path/to/directory这个指定的目录中。

实例13:列出tar文件内容

如果你想查看tar文件中包含的文件和文件夹,而不真正的解压它,你可以使用’-t’选项。例如:

[linux@bashcommandnotfound.cn ~]$ tar -tvf archive.tar

上述命令会列出tar文件archive.tar中的所有文件和目录,但并不会解压这个tar文件。

实例14:更新tar文件中的文件

如果tar文件中的某些文件在归档之后有所改动,你可以使用’-u’选项来更新存在于归档中的文件版本。例如:

[linux@bashcommandnotfound.cn ~]$ tar -uvf archive.tar file1

这个命令将更新tar文件archive.tar中的file1文件。注意,与’r’和’–delete’选项一样,'-u’选项不能用于压缩过的tar文件。

Linux tar命令的注意事项

bash: tar: command not found: 如果遇到这个错误信息,意味着你的系统中没有安装tar命令,可以使用上述的安装命令进行安装。

Linux tar相关命令

find命令:用于在系统中查找文件或目录

cp命令:用于复制文件或目录

rm命令:用于删除文件或目录

mv命令:用于移动或重命名文件或目录

cat命令:用于查看文件内容

less命令:用于分页查看文件内容

more命令:也是用于分页查看文件内容,与less类似

gz命令:用于压缩文件

bzip2命令:也是用于压缩文件,与gz类似



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。