copyやmoveで(filesetと共に使用し)、ファイル名の変換を行うタグ(コアタイプ)。
| 属性 | 説明 |
|---|---|
| type="変換形式" | ファイル名変換の形式の名称。 |
| from="ファイル名" | 変換するファイル名(ワイルドカード)。 |
| to="ファイル名" | 変換後のファイル名(ワイルドカード)。 |
<target name="rename"> <delete dir="tmp"/> <mkdir dir="tmp"/> <copy todir="tmp"> <fileset dir="test" /> <mapper type="glob" from="*" to="*.bk"/> </copy> </target>
testの下のファイル名やディレクトリ名に「*.bk」を加えながらtmpにコピーする。
$ ls -R test
test:
Test.txt dir
test/dir:
d e
$ ls -R tmp
tmp:
Test.txt.bk dir dir.bk
tmp/dir:
d.bk e.bk
tmp/dir.bk:
「~」を付加してコピーするようにしたら、「~」のみの空ディレクトリが出来てしまった…。
ので、どういう指定をしたらどういうファイル名になるか試してみた。
表中の(サンプルで使った)ファイル名・ディレクトリ名は、上記のサンプルの通り。
| mapperのto | ディレクトリ・ファイル | |||||
|---|---|---|---|---|---|---|
| test(tmp)直下 | dir直下 | |||||
| Test.txt | dir | dir/d | dir/e | |||
| *.bk | Test.txt.bk | dir | dir.bk | dir/d.bk | dir/e.bk | |
| *~ | Test.txt~ | dir | dir~ | ~ | dir/d~ | dir/e~ |
| bk.* | bk.Test.txt | bk.dir | bk. | bk.dir/d | bk.dir/e | |
| ~* | ~Test.txt | ~dir | ~ | ~dir/d | ~dir/e | |
| pre.*.bk | pre.Test.txt.bk | pre.dir | pre.dir.bk | pre..bk | pre.dir/d.bk | pre.dir/e.bk |
…どういう基準でこうなるのやら、さっぱり。