Tar文件提取存档中的所有内容,但一个特定文件夹除外

Tar文件提取存档中的所有内容,但一个特定文件夹除外

我正在使用tar -xf archive.tar -C /home/user/target/folder(在 bash 脚本中)将特定档案(archive.tar)的内容提取到目标目录(/home/user/target/folder)中,以便目标目录的所有现有内容将被新内容(包含在档案中)覆盖。

一切运行良好,但我想省略档案中的一个目录(从提取并因此覆盖目标文件夹中的现有目录)...例如,如果archive.tar包含:

folderA/
folderB/
folderC/
folderD/
fileA.php
fileB.php
fileC.xml

我怎样才能提取(并覆盖)除(例如)folderC/之外的所有内容?

tar --version输出tar (GNU tar) 1.23

答案1

使用 -X 选项或 --exclude 选项

filename 是包含您想要排除的模式列表的文件的名称。pattern 是您想要排除的单个模式。

要排除 FolderC,请使用以下命令

tar -xf archive.tar --exclude folderC -C /home/user/target/folder

在您的系统上使用 man tar 来完整解释这两个选项。

相关内容