1. 程式人生 > >禁用rm命令,使用mv命令給linux建立回收站

禁用rm命令,使用mv命令給linux建立回收站

linux回收站 腳本 source

把rm命令轉換成mv命令,不能使用-r 參數,會報出一個錯誤,因為mv命令沒有-r參數,下面是方法:

  • 在用戶主目錄下創建一個隱藏文件夾~/.trash作為垃圾回收站
    [root@akuilinux01 shellXT]# mkdir -p ~/.trash
  • 寫一個腳本
    
    [root@akuilinux01 tmp]# vim ~/.bashrc 

#設置別名,rm是刪除文件,rl是查看回收站,ur是恢復文件
alias rm=‘trash‘
alias rl=‘trashlist‘
alias ur=‘undelfile‘
#替換rm指令移動文件到~/.trash/中
trash()
{

mv $@ ~/.trash/
}
#顯示回收站中垃圾清單
trashlist()
{
echo -e "33[32m==== Garbage Lists in ~/.trash/ ====33[0m"
echo -e "\a33[33m----Usage------33[0m"
echo -e "\a33[33m-1- Use ‘cleartrash‘ to clear all garbages in ~/.trash!!!33[0m"
echo -e "\a33[33m-2- Use ‘ur‘ to mv the file in garbages to current dir!!!33[0m"
ls -al ~/.trash
}
#找回回收站相應文件
undelfile()
{
mv -i ~/.trash/$@ ./
}
#清空回收站
cleartrash()
{
echo -ne "\a33[33m!!!Clear all garbages in ~/.trash, Sure?[y/n]33[0m"
read confirm
if [ $confirm == ‘y‘ -o $confirm == ‘Y‘ ] ;then
/bin/rm -rf ~/.trash/
/bin/rm -rf ~/.trash/.
2>/dev/null
fi
}

- 在命令行下面刷新一下環境配置,即可生效:

[root@akuilinux01 ~]# source ~/.bashrc


- source命令的作用就是用來執行一個腳本,那麽:
source a.sh 同直接執行 ./a.sh 有什麽不同呢,比如你在一個腳本裏export $KKK=111 ,如果你用./a.sh執行該腳本,執行完畢後,你運行 echo $KKK ,發現沒有值,如果你用source來執行 ,然後再echo ,就會發現KKK=111。因為調用./a.sh來執行shell是在一個子shell裏運行的,所以執行後,結構並沒有反應到父shell裏,但是source不同它就是在本shell中執行的,所以可以看到結果

禁用rm命令,使用mv命令給linux建立回收站