2

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>

打开调试后,它总是说“找不到源”,所以我对下一步该做什么有点困惑。

4

1 回答 1

5

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

  1. 是文件/var/trac/test还是/var/svn/test目录?Realtar两者都可以正常工作;你的任务——它现在的编写方式——只适用于文件而不适用于文件夹。

  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>

prefix允许您明确指定Tar 归档中的文件应开始的路径。

/**within<include>告诉 Ant 从该文件夹及其所有子文件夹中获取所有文件。如果/var/trac/test并且/var/svn/test确实是文件而不是文件夹,那么您可以省略它。

于 2009-09-05T18:00:28.623 回答