Как указать разрешения для подкаталога при использовании задачи tar в ant в linux? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь сжать файлы, используя задачу tar для ant. Я хочу создать 755 разрешений для файлов в каталоге bin под jre.

Структура каталога, который вы хотите сжать, выглядит следующим образом:

JRE
|
+ - корзина
|
+ - lib
|
`- и т. д.

Файл 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. Как мне создать tar-файл с разрешениями 755 для всех файлов в bin, подкаталоге jre?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Я нашел решение! Я не знал о 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>

Когда я запускаю муравей, используя приведенный выше скрипт, получаю потрясающий результат, какой я хочу. Спасибо!

0 голосов
/ 10 мая 2018

Вот что вы можете попробовать:

<chmod perm="755" type="file">
  <fileset dir="${basedir}/*"/>
</chmod>

Это создает набор файлов каталога, включая все подкаталоги, и создает разрешение для набора файлов.

...