Chgrp

Apache Ant 1.6 以降.

説明

ファイルまたは指定ディレクトリ内のすべてのファイルのグループを変更します。現在、Unix でのみ有効です。グループ属性は chgrp コマンドの対応する引数と同等です。

ネストした <fileset><dirset>、および <filelist> 要素を使用して、ファイルセットディレクトリセット、または ファイルリスト を指定できます。

Ant 1.7 以降、このタスクは、ネストされた要素として任意の リソースコレクション をサポートします。

デフォルトでは、このタスクは基盤の chgrp コマンドを 1 回だけ呼び出します。大量のファイルを処理している場合、これにより、オペレーティングシステムで処理できないほど長いコマンドラインになる可能性があります。このような問題が発生した場合は、このタスクの maxparallel 属性にゼロ以外の値を設定する必要があります。使用する数値は、ファイル名の長さ(ディレクトリツリーの深さ)とオペレーティングシステムによって大きく左右されるため、少し試行錯誤する必要があります。POSIX では、少なくとも 4096 文字のコマンドライン長の制限を推奨していますが、これにより、これらの実験の初期値として使用できる数値を近似できます。

デフォルトでは、このタスクは Unix システムで実行されていることを検出できない限り、何も実行しません。Unix コマンドとコマンドラインが互換性のある chgrp 実行ファイルが PATH にあることが確実な場合は、タスクの os 属性を使用して、現在の OS に値を設定できます。

パラメータ

属性 説明 必須
file グループを変更する必要があるファイルまたはディレクトリ。 はい、ネストした <fileset|filelist|dirset> 要素が指定されていない場合
group 新しいグループ はい
parallel 1 つの chgrp コマンドを使用して、指定されたすべてのファイルを処理します。 いいえ。デフォルトは true
type filedir、または both のいずれか。 file に設定すると、プレーンファイルのグループのみが変更されます。 dir に設定すると、ディレクトリのみが考慮されます。
注: type 属性はネストされた dirset には適用されません。dirset は常に type が dir であることを暗黙的に想定しています。
いいえ。デフォルトは file
maxparallel 並列処理の量を制限し、一度にこの数を上回らない数のソースファイルを渡します。無制限にするには負の整数に設定します。 いいえ。デフォルトは無制限
verbose 実行後に要約を出力するかどうかを指定します。 いいえ。デフォルトは false
os コマンドを実行できるオペレーティングシステムのリスト。 いいえ
osfamily <os> 条件で使用される OS ファミリー。 いいえ。デフォルトは unix

UNIX システムで start.sh ファイルを coders グループに所属させます。

<chgrp file="${dist}/start.sh" group="coders"/>

UNIX システムで ${dist}/bin 以下のすべての .sh ファイルを coders グループに所属させます。

<chgrp group="coders">
  <fileset dir="${dist}/bin" includes="**/*.sh"/>
</chgrp>

UNIX システムで shared/sources1 以下のすべてのファイル(trial という名前のディレクトリ以下のファイルを除く)を coders グループに所属させます。さらに、id=other.shared.sources を持つ FileSet に所属するすべてのファイルが同じグループを取得します。

<chgrp group="coders">
  <fileset dir="shared/sources1">
    <exclude name="**/trial/**"/>
  </fileset>
  <fileset refid="other.shared.sources"/>
</chgrp>

すべての .test.jsp ファイルと .new ファイルをグループ webdev に所属させます。 test_ で始まる名前のディレクトリも webdev に所属しますが、 .new で終わるディレクトリ名または test_ で始まるファイル名がある場合、影響を受けません。

<chgrp group="webdev" type="file">
  <fileset dir="/web">
    <include name="**/*.test.jsp"/>
    <include name="**/*.new"/>
  </fileset>
  <dirset dir="/web">
    <include name="**/test_*"/>
  </dirset>
</chmod>