java - linux下使用ant的tar任务时如何指定子目录的权限?

标签 java ant permissions tar

我正在尝试使用 ant 的 tar 任务来压缩文件。我想给jre下bin目录下的文件创建755权限。

要压缩的目录结构如下:

jre
|
+-- 垃圾箱
|
+-- 库
|
`--等等

ant build.xml 文件如下所示:

<chmod file="${basedir}/jre/bin/**" perm="755"/>
<target name="dist">
    <tar destfile="${basedir}/jre.tar">
        <tarfileset dir="${basedir}/jre" />
    </tar>
</target>

但是,如果解压tar文件,则bin目录下所有文件的权限将为644。 如何为 jre 子目录 bin 中的所有文件创建一个权限为 755 的 tar 文件?

最佳答案

我找到了解决办法! 我不知道 prefix 属性有什么作用...抱歉。

因此,我更改了 build.xml,如下所示:

<chmod file="${basedir}/jre/bin/**" perm="755"/>
<target name="dist">
    <tar destfile="${basedir}/jre.tar" prefix="jre" >
        <tarfileset dir="${basedir}/jre" >
            <exclude name="**/bin/**" />
        </tarfileset>
        <tarfileset dir="${basedir}/jre/bin" prefix="jre/bin" filemode="755" />
    </tar>
</target>

当我使用上面的脚本运行 ant 时,就会得到我想要的很棒的结果。谢谢!

关于java - linux下使用ant的tar任务时如何指定子目录的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50269850/

相关文章:

java - java中对子数组进行反向排序

java - 需要将依赖复制到指定文件夹

Java 构建错误且没有明显原因

azure - VSTS : "You are not allowed to perform this task because of the permissions in the Azure AD. Please contact your directory admin"

linux - apache 服务器 web 文件上的 chmod 600 仍然允许从世界访问

java - Android-Unity 服务 NetworkOnMainThreadException

java - Play Framework 1.2.7 将表单值传递给 Controller

eclipse - 如何通过 Eclipse 直接在 tomcat 中运行/调试 Ant 项目?

java - Ant 和Gradle混合体将jar和pom发布到Artifactory

java - OSGi中有方法级别的权限吗?