2012-07-17 61 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

相關問題