提取 tar 存档,不包括特定文件夹及其内容

cap*_*heo 6 linux tar

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

它工作正常,目标目录中的所有文件在提取后都将被覆盖,但我想忽略存档中的一个目录(从提取并覆盖目标文件夹中的现有目录)...

例如,archive.tar 包含:

文件夹A/

文件夹B/

文件夹C/

文件夹D/

文件A.php

文件B.php

文件C.xml

我如何提取(并覆盖)除(例如)之外的folderC/所有内容?换句话说,我希望folderC 及其内容在用户目录中保持完整,并且不被tar 存档中包含的内容覆盖。

有什么建议么?

(托管服务器上的 Tar 是 GNU 版本 1.23。)

Stu*_*art 9

您可以使用“--exclude”来省略文件夹:

tar -xf archive.tar -C /home/user/target/folder" --exclude="folderC"
Run Code Online (Sandbox Code Playgroud)