在Gradle任务中取消归档后,保留tar文件中文件的所有者

时间:2018-08-30 13:19:59

标签: linux gradle tar

我有一个tar.gz文件,该文件是使用以下命令创建的: .master("local") 因此,文件的权限和所有者应保存在此处。

如果我直接在终端中(根目录下)调用un-tar命令行,则文件的权限和所有者都可以:

tar -czvpf file.tar.gz my_directory

^这会在未归档的文件夹结构中产生正确的结果。

我还有一个Gradle任务,应该将其解压缩到目标文件夹:

tar --same-owner -xvf file.tar -C /target/directory

问题是:当我从同一终端调用gradle任务时:

task unTarPredefinedProjectTree(type:Exec) {
    workingDir envDumpDir
    commandLine ('tar --same-owner -xvf file.tar.gz -C /target/directory')
}

所有文件的所有者都重置为root。

我尝试单独放置命令行参数:

gradle unTarPredefinedProjectTree

并尝试使用tarTree函数:

commandLine ('tar', '--same-owner', '-xvf', 'file.tar.gz', '-C', '/target/directory')

仍然相同:使用Gradle任务后为“ root”所有者,但在终端中手动调用命令后更正所有者。在两种情况下,同一终端的窗口和我都位于root用户的控制之下。

那么如何强制Gradle保留tar文件的所有者?

先谢谢了。

0 个答案:

没有答案