如何为此tar命令构建Ant TarTask?

Tox*_*ene 2 ant tar

tar zcvf Test.tar.gz/var/trac/test/var/svn/test

到目前为止,我有:

<target name="archive" depends="init">
    <tar compression="gzip" destfile="test.tar.gz">
        <tarfileset dir="/">
            <include name="/var/trac/test" />
        </tarfileset>
        <tarfileset dir="/">
            <include name="/var/trac/svn" />
        </tarfileset>
    </tar>
</target>
Run Code Online (Sandbox Code Playgroud)

通过调试,它始终显示"找不到任何来源",所以我对下一步该做什么感到有点困惑.

Chs*_*y76 5

这里有几件事可能会出错:

  1. /var/trac/test/var/svn/test文件或目录?真的tar可以和两者一起工作; 你的任务 - 现在的编写方式 - 只适用于文件而不适用于文件夹.

  2. 你(或者更确切地说,Ant进程)是否有足够的权限?

  3. <include>元素包含模式,通常对于基础目录.你将它们指定为绝对的.

我会把上面的内容重写为:

<target name="archive" depends="init">
  <tar compression="gzip" destfile="test.tar.gz">
    <tarfileset dir="/var/trac" prefix="/var/trac">
      <include name="test/**" /> 
      <include name="svn/**" />
    </tarfileset>
  </tar>
</target>
Run Code Online (Sandbox Code Playgroud)

prefix允许您明确指定 Tar归档中的文件应该从哪个路径开始.

/**在内部<include>告诉Ant从该文件夹及其所有子文件夹中获取所有文件.如果/var/trac/test/var/svn/test确实的文件和文件夹没有,那么你可以省略.