將linux下的rm命令改造成mv到指定的目錄下


   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 



這個時候我們可以定時的去清理以下垃圾箱

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM