2012-07-17 42 views
4

我正在写一个Ant脚本来清理存档文件夹的Linux移除文件夹中超过1年且超过3个文件

以下是我需要把它清理干净:我需要删除旧文件夹超过一定天数和有超过3个文件。所以例如,如果一个文件夹是300天,但只有3个文件,不会被删除。

我知道我可以ssh到归档并做find -mtime +365 -exec rm -rf {} ;\删除一岁以上的文件,但我不知道如何计算最低的3个文件

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

任何想法?

回答

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> 
+0

感谢答案的大量。我会测试它,并让你知道 – 2012-07-18 19:12:57

+0

如何调整代码,以便我可以在远程服务器上执行此代码? – 2012-07-25 23:06:43

+0

@JinAhn ANT文件集仅适用于本地文件。 ANT是否安装在远程服务器上? – 2012-07-26 19:01:38

相关问题