rm是Linux下文件刪除的命令,它是Linux下非常強大卻又非常危險的一條命令,特別是rm -rf有時候強大到讓你欲哭無淚,當你想清除當前目錄下的所有文件和目錄時,很簡單 #rm -rf ./* 這沒什麼,但是,但是如果不小心打成這樣 #rm -rf /* 兄弟請節哀吧!~~ rm刪除文件同時刪除inode信息,這使得使用rm刪除的文件十分難恢復。總之rm太危險了,特別是帶有-rf參數時一定要慎之又慎,但老虎也有打盹的時候啊,所以爲什麼不給rm一劑後悔藥呢! 經過在網上不斷的尋找,我找到了一段將rm命令改造爲把文件移動到一個指定的回收站目錄下,然後可以查看回收站目錄下的文件,然後在清空回收站目錄徹底刪除文件的一段代碼,這短代碼的原始出處已經無從考究,但本着獨樂樂不如衆樂樂的精神把它分享出來!
#mkdir -p ~/.trash //創建一個目錄作爲回收站,這裏使用的是用戶家目錄下的.trash目錄 #alias rm=trash //命令別名 rm改變爲trash,通過將rm命令別名值trash來實現把rm改造成刪除文件至回收站 #alias r=trash #alias rl=’ls ~/.trash’ // rl 命令顯示回收站中的文件 #alias ur=undelfile // ur命令找回回收站中的文件 #undelfile() { mv -i ~/.trash/\$@ ./ } //這個函數的作用是找回回收站下的文件 #trash() { mv $@ ~/.trash/ } //這個函數是將指定的文件移動到指定的目錄下,通過將rm命令別名值trash來實現把rm改造成刪除文件至回收站 #cleartrash() { read -p “clear sure?[n]” confirm [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* } //這個函數的作用是清空回收站目錄下的所有文件
這段代碼定義了三個函數trash、undelfile和cleartrash。trash的作用是移動文件到指定的回收站目錄;undelfile的作用是找回回收站目錄中的指定文件;cleartrash的作用是清空回收站目錄。經rm命令別名爲trash來實現rm命令的改造! 下面是我修改後的代碼,直接在用戶家目錄下創建。trash目錄作爲回收站,將其它代碼加入用戶家目錄下的.bashrc文件下,這樣用戶每次登錄這段代碼就會自動生效!登錄後在bash下執行一遍下面的命令就可以把rm命令改造成刪除文件到回收站了!
#mkdir -p ~/.trash #cat >> .bashrc <