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

Linux 在Gradle任务中取消归档后,保留tar文件中的文件所有者,linux,gradle,tar,Linux,Gradle,Tar,我有一个tar.gz文件,它是用以下命令创建的: tar-czvpf file.tar.gz my_目录 所以文件的权限和所有者应该保存在那里 如果我直接在终端(根目录下)调用un tar命令行,文件的权限和所有者都可以: tar --same-owner -xvf file.tar -C /target/directory ^这将在未归档的文件夹结构中生成正确的结果 我还有一个Gradle任务,它应该将此文件解压缩到目标文件夹: task unTarPredefinedProjectTree

我有一个tar.gz文件,它是用以下命令创建的:
tar-czvpf file.tar.gz my_目录
所以文件的权限和所有者应该保存在那里

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

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')
}
问题是:当我从同一终端调用gradle任务时:

gradle unTarPredefinedProjectTree
所有文件的所有者都将重置为root用户

我尝试分别放置命令行参数:

commandLine ('tar', '--same-owner', '-xvf', 'file.tar.gz', '-C', '/target/directory')
并尝试使用tarTree函数:

task unTarPredefinedProjectTree << {
    copy {
        from tarTree(file('file.tar.gz'))
        into '/target/directory'
    }
}

task unTarPredefinedProjectTree文件的原始用户是什么?哪个用户正在运行
gradle
?在这两种情况下,我都在“root”用户下运行
root:tar——同一所有者-xvf file.tar-C/target/directory
root:gradle unTarPredefinedProjectTree
我试图复制,但没有运气,这对我来说没问题,即使
gradle
保留了原始文件的所有者。