4

我正在编写一个 ant 脚本来清理存档文件夹

以下是我需要清理的方法:我需要删除超过一定天数的文件夹,并且其中包含 3 个以上的文件。因此,例如,如果一个文件夹已有 300 天的历史,但只有 3 个文件,那么它将不会被删除。

我知道我可以 ssh 进入存档并find -mtime +365 -exec rm -rf {} ;\删除超过 1 年的文件,但我不知道如何计算至少 3 个文件

我也知道这find -type f | wc -l将列出文件的数量,但这在脚本方面并没有真正的帮助

有任何想法吗?

4

1 回答 1

4

ANT选择器使您能够自定义要删除的文件集。

尝试以下操作:

<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>
于 2012-07-18T17:45:28.220 回答