给rm命令加道保险

前言

在经历了几次rm误删以及一次误删作业后,正巧昨晚学习了alias的相关用法,终于决定给rm命令上道保险,整体思路:

  1. 创建一个隐藏的回收站目录.trash
  2. mv命令覆盖rm命令,让rm命令本质上从删除变成将文件移动到.trash目录

同时顺便实现一些相关的命令:

  • rl        查看回收站文件列表
  • ur namefile     恢复误删文件
  • cleartrash     确认后清空回收站清空回收站

实现

  1. 在家目录创建.trash目录

    skange@skange:~$ mkdir .trash

  2. 打开.bashrc文件,在最下面输入代码后保存退出  

    skange@skange:~$ vim .bashrc

#创建命令
alias rm='trash'
alias rl='trashlist'
alias ur='undelfile'

#mv命令覆盖rm命令
trash()
{ 
    mv $@ ~/.trash/   
} 
#显示回收站中垃圾清单 
trashlist() 
{ 
    ls -alt ~/.trash
} 
#找回回收站相应文件 
undelfile() 
{ 
    mv -i ~/.trash/$@ ./ 
} 
#清空回收站 
cleartrash() 
{ 
echo "确认删除回收站所有文件??? ~/.trash [y/n]" 
read confirm 
if [ $confirm == 'y' -o $confirm == 'Y'  ] ;then 
    /bin/rm -rf ~/.trash/* 
    /bin/rm -rf ~/.trash/.* 2>/dev/null 
fi 
}

最后

在终端中运行. .bashrc 或者 source .bashrc, 此时就上好了保险, 误删后文件就保存在.bashrc文件夹中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章