我正在编写一个ant脚本来清理存档文件夹
以下是我需要清理它的方法:我需要删除超过一定天数的文件夹并且其中包含3个以上的文件。因此,例如,如果文件夹是300天,但只有3个文件,则不会被删除。
我知道我可以浏览存档并执行find -mtime +365 -exec rm -rf {} ;\
删除超过1年的文件,但我不知道如何考虑至少3个文件
我也知道find -type f | wc -l
会列出文件的数量,但这对脚本而言并没有多大帮助
有什么想法吗?
答案 0 :(得分:4)
ANT selectors可让您自定义要删除的文件集。
尝试以下方法:
<target name="purge">
<tstamp>
<format property="touch.time" pattern="MM/dd/yyyy hh:mm aa" offset="-300" unit="day"/>
</tstamp>
<delete>
<fileset dir="${src.dir}">
<date datetime="${touch.time}" when="before"/>
<scriptselector language="javascript"><![CDATA[
if (file.getParentFile().list().length > 3) {
self.setSelected(true);
}
else {
self.setSelected(false);
}
]]> </scriptselector>
</fileset>
</delete>
</target>