我正在运行一个Ant命令,如:
<delete dir="/some/folder/path/"/>
文件夹/path/
包含一些文件,文件夹和一些符号链接。文件和文件夹将被删除,但该命令会尝试删除符号链接的target
目录,这会导致错误。
当我在父文件夹(<delete>
)上运行/path/
命令时,我不想删除目标目录,只删除符号链接。
答案 0 :(得分:4)
我找到了this bugreport。
解决方案是使用文件集。
<delete>
<fileset dir="/some/folder/path/" followsymlinks="false"/>
</delete>
编辑:上面的内容不会删除符号链接。以下内容删除文件夹中的所有符号链接。我找到了here。
<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应该是安全的。
答案 1 :(得分:0)
使用bash中的“rm -rf”。 我找不到更好的解决方案
<macrodef name="bash_rm">
<attribute name="dir" />
<sequential>
<echo message="Remove directory @{dir}"/>
<exec executable="rm" >
<arg value="-rf"/>
<arg value="@{dir}" />
</exec>
</sequential>
</macrodef>