Linux删除超过1年并且文件数量超过3个的文件夹。

4
我正在编写一个ant脚本来清理存档文件夹。
这是我需要清理的方式:我需要删除早于特定天数且其中有超过3个文件的文件夹。例如,如果一个文件夹已经存在300天,但只有3个文件,则不会被删除。
我知道我可以通过ssh进入存档并执行“find-mtime +365-exec rm-rf {};\”来删除超过1年的文件,但我不知道如何考虑最少3个文件的情况。
我还知道“find -type f | wc-l”将列出文件数量,但在脚本方面没有什么帮助。
有什么想法吗?
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>

非常感谢您的答案。我会测试一下并让您知道。 - Jin Ahn
我该如何调整代码,以便在远程服务器上执行此代码? - Jin Ahn
@JinAhn ANT文件集只能针对本地文件使用。远程服务器上是否安装了ANT? - Mark O'Connor
不,不是这样的。通常我会通过ssh登录到存档服务器然后执行命令。还有其他方法吗? - Jin Ahn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接