與windows系統默認將文件移到垃圾回收箱不同,UNIX命令“rm”直接將文件徹底刪除。我曾經數次誤刪文件,給自己找了不少麻煩。痛定思痛,我模仿windows實現了solaris上的垃圾回收:刪除文件時,文件被移至垃圾箱,cron job定時刪除垃圾箱中的過期文件。具體做法如下:
1. 創建一個文件夾作為垃圾箱;
2. 創建腳本《del》,該腳本將參數中的文件移至垃圾箱;
3. 創建腳本《cleanRecycleBin.sh》,該腳本用於定時刪除垃圾箱中的文件;
4. 創建cron job與空閒時刻(如午夜)執行《cleanRecycleBin.sh》。
腳本分別為:
script del:
#!ksh
while [ "$#" -ne 0 ]
do
ext=__$(date '+%m%d%H%M%S')
echo "moving $1"
mv $1 ~lgfang/recycle.bin/$1$ext
shift
done
echo "done"
script cleanRecycleBin.sh(只有一句話):
find /the/absolute/path/of/recycle.bin -atime 30 -exec rm {} \;
crontab 例子
0 1 * * * /the/path/of /script/cleanRecycleBin.sh