3

次のような Ant コマンドを実行しています。

<delete dir="/some/folder/path/"/>

フォルダー/path/には、いくつかのファイル、フォルダー、およびいくつかのシンボリックリンクが含まれています。ファイルとフォルダーは削除されますが、コマンドはtargetシンボリックリンクのディレクトリを削除しようとするため、エラーが発生します。

<delete>親フォルダー ( ) でコマンドを実行するときに、ターゲット ディレクトリを削除するのではなく、シンボリック リンクのみを削除します/path/

4

2 に答える 2

4

このバグレポートを見つけました。

解決策は、ファイルセットを使用することです。

<delete>
  <fileset dir="/some/folder/path/" followsymlinks="false"/>
</delete>

編集:ただし、上記はシンボリックリンクを削除しません。以下は、フォルダー内のすべてのシンボリックリンクを削除します。ここで見つけました。

<exec output="/path/to/symlink/list" executable="/usr/bin/find">
    <arg value="/some/folder/path/"/>
    <arg value="-type"/>
    <arg value="l"/>
</exec>

<fileset id="victims" dir="/some/folder/path/">
    <includesfile name="/path/to/symlink/list>
</fileset> 

この後、delete dir を使用しても安全です。

于 2012-10-05T07:00:01.693 に答える