改寫linux rm防止誤刪檔案無法恢復

聽海★藍心夢發表於2012-03-12
        在linux環境下rm -rf一定要慎用,命令敲得多了,難免會出現失誤。總結工作中的幾點教訓:
1、rm,特別是rm -rf之前,一定要先想想你要刪除的目標,然後再看看操作命令所在的路徑進行確認,確認無誤後再進行刪除。
2、如果可能,一定要做好備份,有便捷的備份指令碼。
3、做好定時備份,有個前輩搞定時指令碼,每天定時自個執行,即使刪錯了也不會那麼悲催。
        首先,搞個回收站。在~下的.bashrc或者.bash_profile加入一下內容:
 
mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile
undelfile()
{
 mv -i ~/.trash/$@ ./
}
trash()

 mv $@ ~/.trash/
}
 
        新增完成後,是.bash_profile檔案生效:SOURCE ~/.bashrc。這時執行rm就相當於執行mv了。
        注:此時已經木有rm -rf了,刪除的檔案會在.trash中出現,可以恢復回去。但是,這就帶來一個問題,如何刪除回收站裡的東西,這是後rm在這裡是沒有用的。為了能清理回收站裡的檔案,在剛才.bashrc下繼續加函式:

cleartrash()
{
   read -p "clear sure?[n]" confirm
   [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /usr/bin/rm -rf ~/.trash/*
}
 
        然後,如果想清空回收站的話,直接執行cleartrash就行了。
        但是,操作之前還是要細心、慎重,有時候安全要比效率重要。再好的恢復手段都不如不犯錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-718307/,如需轉載,請註明出處,否則將追究法律責任。

相關文章