Linux下刪除文件不像Windows,刪除的文件會放入回收站,一旦刪除有誤,可通過回收站找回.Linux下通過rm -rf命令刪除文件,刪除后文件一般無法找回, 就是這種機制,每次帶來的都是巨大的教訓(xùn).為此實現(xiàn)一個回收站機制,避免悲劇的發(fā)生.原理如下:
重定向rm命令,并不真正執(zhí)行刪除操作,而將文件移動到一個特定目錄
設(shè)置時間定時清除臨時回收站
重定向命令
首先寫shell腳本替換rm命令,或者在需要刪除文件的時候使用mv命令將文件移動到回收站
家目錄(~)新建一個隱藏文件夾: mkdir .trash
家目錄(~)新建tool文件夾,存放remove.sh
腳本主要是把文件根據(jù)當前日期重命名,移動到.trash,實現(xiàn)如下
TRASH_DIR="~/.trash"
for i in $*; do
STAMP=`date +%m-%d-%H:%M:%S`
fileName=`basename $i`
mv $i $TRASH_DIR/$fileName.$STAMP
done
- 系統(tǒng)rm 命令和remove.sh 腳本的綁定,修改~/.bashrc,增加一行
alias rm="sh ~/tools/remove.sh"
- alias設(shè)置命令的別名,相當于執(zhí)行rm,實際際執(zhí)行remove.sh
- source ~/.bashrc 使替換立即生效
定時清理
定時清空垃圾箱.trash, 通過crontab 命令,可以在固定的間隔時間執(zhí)行指定的系統(tǒng)指令或 shell script腳本
執(zhí)行crontab -e,添加
0 0 * * * rm -rf ~/.trash/*
- 表示每天的0點0分刪除 .tarsh文件中的內(nèi)容