Tar

Description

説明

Creates a tar archive.

tar アーカイブを生成します。

The basedir attribute is the reference directory from where to tar.

basedir 属性はtar を実行するディレクトリへの参照です。

This task is a directory based task and, as such, forms an implicit Fileset. This defines which files, relative to the basedir, will be included in the archive. The tar task supports all the attributes of Fileset to refine the set of files to be included in the implicit fileset.

このタスクはディレクトリベースのタスクであり、暗黙的なファイルセットを構成します。 これは、basedirを相対パスとして、 どのファイルがアーカイブに含まれるかを定義します。 tar タスクは、暗黙的なファイルセットに含まれるファイルの集合を精錬するために、 全てのファイルセットの属性をサポートしています。

In addition to the implicit fileset, the tar task supports nested filesets. These filesets are extended to allow control over the access mode, username and groupname to be applied to the tar entries. This is useful, for example, when preparing archives for Unix systems where some files need to have execute permission.

暗黙的なファイルセットに加えて、tar タスクはネストされたファイルセットもサポートしています。 これらのファイルセットは、 アクセス権、ユーザ名、およびグループ名の制御が tar の内容に対してなされるように拡張うされています。 例えば、これは、一部のファイルに実行権が必要な Unix システムのアーカイブを準備するのに便利です。

Early versions of tar did not support path lengths greater than 100 characters. Modern versions of tar do so, but in incompatible ways. The behaviour of the tar task when it encounters such paths is controlled by the longfile attribute. If the longfile attribute is set to fail, any long paths will cause the tar task to fail. If the longfile attribute is set to truncate, any long paths will be truncated to the 100 character maximum length prior to adding to the archive. If the value of the longfile attribute is set to omit then files containing long paths will be omitted from the archive. Either option ensures that the archive can be untarred by any compliant version of tar. If the loss of path or file information is not acceptable, and it rarely is, longfile may be set to the value gnu. The tar task will then produce a GNU tar file which can have arbitrary length paths. Note however, that the resulting archive will only be able to be untarred with GNU tar. The default for the longfile attribute is warn which behaves just like the gnu option except that it produces a warning for each file path encountered that does not match the limit.

tar の古いバージョンでは、 100 文字以上の長さのパスをサポートしていませんでした。 tar の新しいバージョンではサポートしていますが、 互換性の無い方法で行っています。 そのようなパスに遭遇した場合のtar タスクの振る舞いは、 longfile属性により制御されます。 longfile 属性がfailに設定されていた場合、 どんな長いパスでも tar タスクが失敗します。 longfile 属性がtruncateに設定されていた場合、 どんな長いパスでも、アーカイブに加える前に 100 文字という最大長に縮められます。 longfile 属性の値が omitに設定された場合、 長いパス名を持つファイルはアーカイブを省略されます。 どちらのオプションも tar の全ての互換のバージョンで、 解凍可能なアーカイブとなることを保障します。 パスやファイルの情報の欠落が認められない場合、 それは珍しいケースですが、longfile の値を gnuに 設定することもできます。 その際、tar タスクは任意のパスの長さを持つことのできる GNU tar ファイルを生成します。 しかしながら、生成されたアーカイブは GNU tar によってのみ解凍できるということに注意してください。 longfile 属性のデフォルトは、 制限を超えたファイルに遭遇した場合、その都度警告を出すことを除いて、 GNU オプションのように振舞うwarn です。

This task can perform compression by setting the compression attribute to "gzip" or "bzip2".

このタスクは、 compression 属性を "gzip" または "bzip2" に設定することにより圧縮を実行します。

Parameters

パラメータ

Attribute Description Required
destfile the tar-file to create. Yes
basedir the directory from which to tar the files. No
longfile Determines how long files (>100 chars) are to be handled. Allowable values are "truncate", "fail", "warn", "omit" and "gnu". Default is "warn". No
includes comma- or space-separated list of patterns of files that must be included. All files are included when omitted. No
includesfile the name of a file. Each line of this file is taken to be an include pattern No
excludes comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted. No
excludesfile the name of a file. Each line of this file is taken to be an exclude pattern No
defaultexcludes indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted. No
compression compression method. Allowable values are "none", "gzip" and "bzip2". Default is "none". No
属性 説明 必須
destfile 生成される tar ファイル Yes
basedir ファイルのtarアーカイブを行うディレクトリ No
longfile 長いパス名(>100 文字以上)の扱いを決めます。 利用可能な値は、 "truncate"、 "fail"、 "warn"、 "omit" および "gnu" です。デフォルトは"warn"です。 No
includes カンマまたは空白文字で区切られた、 包含すべきファイルのパターンのリスト。 省略された場合、全てのファイルが包含されます。 No
includesfile ファイルの名前。このファイルの各行が includes パターンとして扱われる No
excludes カンマあるいは空白で区切られた除外するファイルのパターンのリスト。省略された場合、(デフォルト除外ファイルを除き)何も除外しない。 No
excludesfile ファイルの名前; このファイルの各行が excludes パターンとして扱われる No
defaultexcludes デフォルト除外パターンを使うかどうか指定します。 ("yes"/"no") 省略された場合デフォルト除外パターンは使われます。 No
compression 比較方法。可能な値は、 "none"、"gzip" および"bzip2"です。 デフォルトは"none" No

Nested Elements

ネストされる要素

The tar task supports nested tarfileset elements. These are extended Filesets which, in addition to the standard fileset elements, support three additional attributes

tar タスクはネストされた tarfileset 要素をサポートしています。 これらは、標準の fileset 要素に 3 つの属性を加えた拡張されたファイルセットです。

Attribute Description Required
mode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion No
username The username for the tar entry. This is not the same as the UID, which is not currently set by the tar task. No
group The groupname for the tar entry. This is not the same as the GID, which is not currently set by the tar task. No
prefix If the prefix attribute is set, all files in the fileset are prefixed with that path in the archive. No
fullpath If the fullpath attribute is set, the file in the fileset is written with that path in the archive. The prefix attribute, if specified, is ignored. It is an error to have more than one file specified in such a fileset. No
preserveLeadingSlashes Indicates whether leading `/'s should be preserved in the file names. Default is false. No
属性 説明 必須
mode 3 つの数字の8進数文字列。 標準の Unix の方法でユーザ、グループ、一般のアクセス権を指定します。 No
username tar の項目のユーザ名。これは、 現在の tar タスクで設定されている UID と同じではありません。 No
group tar の項目のグループ名。これは、 現在の tar タスクで設定されている GID と同じではありません。 No
prefix prefix 属性が設定されている場合、 ファイルセット中の全てのファイルに、 アーカイブ中のパスの接頭辞がつけられます。 No
fullpath fullpath 属性が設定された場合、 ファイルセット中のファイルはアーカーブ中にそのパスを書き込まれます。 prefix 属性は、設定されても無視されます。 そのようなファイルセットで一つ以上のファイルを指定した場合、 エラーとなります。 No
preserveLeadingSlashes ファイル名で最初の '/' を残しておくか指定します。 デフォルトは falseです。 No

Examples

  <tar tarfile="${dist}/manual.tar" basedir="htdocs/manual"/>
  <gzip zipfile="${dist}/manual.tar.gz" src="${dist}/manual.tar"/>

tars all files in the htdocs/manual directory into a file called manual.tar in the ${dist} directory, then applies the gzip task to compress it.

htdocs/manual ディレクトリにある全てのファイルを ${dist}ディレクトリのmanual.tar という名前のファイルに tar アーカイブし、 圧縮に gzip タスクを使います。

  <tar destfile="${dist}/manual.tar"
       basedir="htdocs/manual"
       excludes="mydocs/**, **/todo.html"
  />

tars all files in the htdocs/manual directory into a file called manual.tar in the ${dist} directory. Files in the directory mydocs, or files with the name todo.html are excluded.

htdocs/manual ディレクトリにある全てのファイルを ${dist}ディレクトリのmanual.tar という名前のファイルに tar アーカイブします。 ディレクトリmydocs中のファイル、あるいは、 todo.html という名前のファイルは 除外されます。

<tar destfile="${basedir}/docs.tar">
  <tarfileset dir="${dir.src}/docs"
              fullpath="/usr/doc/ant/README"
              preserveLeadingSlashes="true">
    <include name="readme.txt"/>
  </tarfileset>
  <tarfileset dir="${dir.src}/docs"
              prefix="/usr/doc/ant"
              preserveLeadingSlashes="true">
    <include name="*.html"/>
  </tarfileset>
</tar>

Writes the file docs/readme.txt as /usr/doc/ant/README into the archive. All *.html files in the docs directory are prefixed by /usr/doc/ant, so for example docs/index.html is written as /usr/doc/ant/index.html to the archive.

ファイルdocs/readme.txt/usr/doc/ant/READMEとしてアーカイブに書き込みます。 全てのdocsディレクトリにある*.htmlファイルは パスの先頭に/usr/doc/antがつけられます。 例えば、docs/index.html/usr/doc/ant/index.htmlとしてアーカイブに書き込まれます。

<tar longfile="gnu"
     destfile="${dist.base}/${dist.name}-src.tar" >
  <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
    <include name="${dist.name}/bootstrap.sh"/>
    <include name="${dist.name}/build.sh"/>
  </tarfileset>
  <tarfileset dir="${dist.name}/.." username="ant" group="ant">
    <include name="${dist.name}/**"/>
    <exclude name="${dist.name}/bootstrap.sh"/>
    <exclude name="${dist.name}/build.sh"/>
  </tarfileset>
</tar> 

This example shows building a tar which uses the GNU extensions for long paths and where some files need to be marked as executable (mode 755) and the rest are use the default mode (read-write by owner). The first fileset selects just the executable files. The second fileset must exclude the executable files and include all others.

この例では、長いパスのために GNU 拡張機能を使い、 一部のファイルを実行ファイル(モード755)であるとし、 残りをデフォルトモード(一般が読み書きできる)にして tar ファイルを生成します。 最初のファイルセットは単に実行ファイルを選択しています。 第二のファイルセットは実行ファイルを除外し他の全てのファイルを包含しています。

Note: The tar task does not ensure that a file is only selected by one fileset. If the same file is selected by more than one fileset, it will be included in the tar file twice, with the same path.

注意: tar タスクは一つのファイルが一つのファイルセットにのみ選択されているかを確認はしません。同じファイルが一つ以上のファイルセットで選択された場合、 tar ファイルに同じパスで二度包含されることになります。

Note: The patterns in the include and exclude elements are considered to be relative to the corresponding dir attribute as with all other filesets. In the example above, ${dist.name} is not an absolute path, but a simple name of a directory, so ${dist.name} is a valid path relative to ${dist.name}/...

注意: パターン中の include および exclude 要素は、 全ての他のファイルセットと関連する dir 属性からの相対パスと見なされます。 上の例では、 ${dist.name} は絶対パスではなく、 ディレクトリの簡潔な名前です。 ですから、${dist.name}${dist.name}/..に関連する有効なパスなのです。


Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]