4

1つのディレクトリに3つのファイルと3つのディレクトリがあり、日付はさまざまです。

$ cd mydir
$ ls -ltr
-rw-rw-r-- 1 skiphoppy users    0 Nov 14 00:00 file.old.20121114
drwxrwxrwx 2 skiphoppy users 4096 Nov 14 00:00 dir.old.20121114
drwxrwxrwx 2 skiphoppy users 4096 Dec  5 12:05 dir.old.20121205
drwxrwxrwx 2 skiphoppy users 4096 Dec  5 12:05 dir
-rw-rw-r-- 1 skiphoppy users    0 Dec  5 12:16 file.old.20121205
-rw-rw-r-- 1 skiphoppy users    0 Dec  5 12:16 file

2012-12-01より古いすべてのディレクトリを含むディレクトリセットを作成したいと思います。私が正しく読んでいる場合は、セレクターを使用して、返されるファイルを制限できます。ただし、dirsetのドキュメントには、ネストされたパターンセットとセレクターを使用できると記載されていますが、これはdirsetでは機能しないようです。

ファイルセットで日付セレクターを使用すると、予想される古いファイルが1つだけ取得されます。しかし、dirsetで同じ構文を使用すると、すべてのディレクトリが取得されます。

<fileset id="old.files" dir="mydir">
  <date datetime="12/01/2012 12:00 AM" when="before"/>
</fileset>
<echo message="Files: ${toString:old.files}"/>
<dirset id="old.dirs" dir="mydir">
  <date datetime="12/01/2012 12:00 AM" when="before"/>
</dirset>
<echo message="Dirs: ${toString:old.dirs}"/>

出力:

 [echo] Files: file.old.20121114
 [echo] Dirs: ;dir;dir.old.20121114;dir.old.20121205

日付セレクターが機能しないということは、ここで何が起こっているのでしょうか。

4

1 に答える 1

5

おそらく、日付セレクターcheckdirsの属性セットが必要です。デフォルトは「false」です。つまり、すべてを選択します。

<date datetime="12/01/2012 12:00 AM" when="before" checkdirs="true" />
于 2012-12-05T18:35:25.000 に答える