請問Shell Script如何保留特定檔案? - Linux

Table of Contents



我有一個shell script
#!/bin/bash
date="`date +%Y%m%d`"
date1=$(date --date='1 days ago' +%Y%m%d)
date2=$(date --date='2 days ago' +%Y%m%d)
date3=$(date --date='3 days ago' +%Y%m%d)
date4=$(date --date='4 days ago' +%Y%m%d)
date5=$(date --date='5 days ago' +%Y%m%d)
cd /home/
rm -rf "$date5"



原本是這樣寫的,
用意在於移除5天以前的資料夾

我每次產生資料夾都會直接以時間當資料夾名稱

如果機器每天都開著
使用crontab,當然可以移除5天前的資料夾.

如果中間隔了兩三天沒開機,

那麼只有第五天的資料夾會被清空,第六天前的資料夾都會存在.

請問,我這邊能夠怎麼修改會比較適合我這樣的想法?

以上述代碼所呈現,

僅希望保留date1~date4 (然後我會新增date的資料夾放今天的資料)
date5之後的檔案都移除,

謝謝,

--

All Comments

Olivia avatarOlivia2011-03-31
先判斷超過的有幾筆,在用迴圈一一處理掉。
Lucy avatarLucy2011-04-04
用find -mtime判斷
Hedwig avatarHedwig2011-04-07
檔名既然用時間了,其實可改檔名,拿來排序,再刪掉
Ursula avatarUrsula2011-04-10
可以呼叫 tmpreaper 之類的程式幫忙嘛?