rm是Linux下文件刪除的命令,它是Linux下非常強大卻又非常危險的一條命令,特別是rm -rf有時候強大到讓你欲哭無淚,當你想清除當前目錄下的所有文件和目錄時,很簡單
#rm -rf ./*
這沒什么,但是,但是如果不小心打成這樣
#rm -rf /*
兄弟請節哀吧!~~
rm刪除文件同時刪除inode信息,這使得使用rm刪除的文件十分難恢復。總之rm太危險了,特別是帶有-rf參數時一定要慎之又慎,但老虎也有打盹的時候啊,所以為什么不給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() //這個函數是將指定的文件移動到指定的目錄下,通過將rm命令別名值trash來實現把rm改造成刪除文件至回收站 { mv $@ ~/.trash/ } 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命令改造成刪除文件到回收站了!
這里我用到的是:
[root@10-19-73-64 ~]# mkdir /data/rubbish
[root@10-19-73-64 ~]# vim .bashrc #添加以下字段 #修改rm ##### alias rm=trash alias r=trash alias rl='ls /data/rubbish' alias ur=undelfile undelfile() { mv -i /data/rubbish/\$@ ./ #mv -i ~/.trash/\$@ ./ } trash() { mv $@ /data/rubbish }
[root@10-19-73-64 ~]# source .bashrc
這個時候我們可以定時的去清理以下垃圾箱