2013-03-25 41 views
0

我需要編寫一個遞歸腳本來刪除名爲'date-2012-01-01_12_30'的子文件夾中的所有文件夾,但保留最新的兩個文件夾。腳本刪除最後兩個最多修改的所有文件夾?

/無功/網絡/溫度/更新/然後數百文件夾通過「日期」,並通過「代碼」

例如

/var/www/temp/updates/2012-01-01/temp1/date-2012-01-_12_30 
/var/www/temp/updates/2012-01-01/temp1/date-2012-02-_13_30 
/var/www/temp/updates/2012-01-01/temp1/date-2013-11-_12_30 
/var/www/temp/updates/2012-01-01/temp2/date-2012-01-_12_30 

我想使用一個查找得到的文件夾,但不知道該如何知道我可以刪除哪些文件夾作爲腳本將必須知道如何日期 - 文件夾是在子文件夾中,哪些是最新遊戲

嗯,任何幫助將是偉大的?

代碼:

$PATH=/var/www/temp/updates/*/* 
find $PATH -type d -name "date-*" -printf '%[email protected] %p\n' | sort -n | head -n -2 | cut -f2- | xargs ls -l 

該腳本將需要經過數千種不同的文件夾,並保持最近的兩個文件夾 - 在這裏以前有人幫助,但我並沒有改變它的數千個文件夾,以通過搜索

+0

可能的[腳本刪除目錄中的舊文件,除了最新的N](HTTP重複://計算器.COM /問題/ 4888508 /腳本換刪除,舊文件,在目錄 - 除了-最新-N) – l0b0 2013-03-25 16:09:38

回答

0

你可以試試這個腳本

PATH1=/var/www/temp/updates 
find $PATH1 -iname "date-*" -print0 | ls -tr | tail -2 | xargs -I file rm -fr file 

感謝名單

0

其實我覺得劇本將罰款作爲發現將要通過的所有文件夾下的/更新/

$PATH=/var/www/temp/updates/*/* 
find $PATH -type d -name "date-*" -printf '%[email protected] %p\n' | sort -n | xargs rm -rf 
相關問題