tar 命令用于从各种文件和文件夹创建存档文件。
当您在一个地方拥有所有必需的文件时,这非常简单。 但是如果你想把一些文件或文件夹放在 tar 文件中并排除一些呢?
一种方法是将这些所需文件复制到新目录中,然后继续执行标准过程,但这不是一种有效的方法。
相反,您可以告诉 tar 命令以这种方式排除不需要的文件:
tar --exclude="File_to_exclude" [options] [archive_name] [path]
顺便说一句,这不是唯一的方法。 让我在这里向您展示几种方法。
但在我跳到指南之前,我想向您展示包含多个文件和子目录的目录,我将在本指南中使用它们:
现在,让我们继续第一种方法。
方法 1. 使用 -exclude 选项
要使用 -exclude
选项,您需要遵循给定的命令语法:
tar --exclude="File_to_exclude" [options] [archive_name] [path]
为了 example,我将创建一个名为 IHateC
不包括 HelloWorld.c
文件:
tar --exclude="HelloWorld.c" -zcvf IHateC.tar.gz .
首先,让我在这里分解使用的选项:
z
使用 gzip 实用程序压缩存档中的文件。c
负责创建一个新的归档文件。f
允许用户指定新存档的名称。v
(详细)为我们提供已处理文件和目录的列表以创建存档文件。
和 .
在命令末尾使用表示我想使用当前工作目录。
要检查 tar 文件的内容,可以使用 tar 命令和 -tf
选项:
tar -tf IHateC.tar.gz

但是排除多个文件和目录呢? 干得好。
排除多个文件和目录
要排除多个文件和目录,可以使用链 --exclude
.
为了 example我会排除 Bash.sh
和名为的子目录 Sub-Directory-1
:
tar --exclude="Bash.sh" --exclude="Sub-Directory-1" -zcvf NoDir.tar.gz .

但是如果您要排除各种文件,此命令可能会变得太长。 如果它们具有相同的扩展名,事情就会变得容易得多!
使用文件扩展名排除文件
您只需要将文件扩展名与 --exclude
它会完成你的工作。
为了 example,我想排除每一个 .mp3
在创建 tarball 文件时,我必须遵循给定的命令:
tar --exclude="*.mp3" -zcvf NoMp3.tar.gz .
方法 2. 使用文本文件排除文件和目录
在此方法中,我将创建一个文本文件,其中包含要排除的文件和目录的名称。
所以我制作了一个包含 3 个我想排除的文件名的文本文件 exclude.txt
:

所以现在我只需要使用该文本文件来排除文件:
tar -zcvf NewFile.tar.gz --exclude-from="exclude.txt" .

就是这样!
最后的话
这是我对如何在以最简单的方式创建 tar 文件的同时排除文件和目录的看法。
如果您有任何疑问,欢迎您在评论中提取它们!