您的位置:首页 > 运维架构 > Linux

改造rm命令-linux文件回收站

2013-11-19 18:46 309 查看
一不小心将rm log* -rf 写成rm log * -rf。结果当前目录下数据全部消失。

以前也出现手一抖,误用-rf造成灾难性后果。于是下决心改造rm。

正好网上有代码,原文参照http://www.lovvvve.net/linux/61.html。我只是稍微润湿一下颜色和格式而已。

同时改进了2个小地方,可以显示回收站的隐藏文件和删除回收站内的隐藏文件。

原理是在用户主目录下创建一个隐藏文件夹~/.trash作为垃圾回收站。

mkdir -p  ~/.trash
vi ~/.bashrc
然后把以下代码写入~/.bashrc后,保存一下。

alias rm='trash'
alias rl='trashlist'
alias ur='undelfile'

#替换rm指令移动文件到~/.trash/中
trash()
{
   mv $@  ~/.trash/
}

#显示回收站中垃圾清单
trashlist()
{
   echo -e "\033[32m==== Garbage Lists in ~/.trash/ ====\033[0m"
   echo -e "\a\033[33m----Usage------\033[0m"
   echo -e "\a\033[33m-1- Use 'cleartrash' to clear all garbages in ~/.trash!!!\033[0m"
   echo -e "\a\033[33m-2- Use 'ur' to mv the file in garbages to current dir!!!\033[0m"
   ls -al  ~/.trash
}

#找回回收站相应文件
undelfile()
{
   mv -i ~/.trash/$@ ./
}

#清空回收站
cleartrash()
{
   echo -ne "\a\033[33m!!!Clear all garbages in ~/.trash, Sure?[y/n]\033[0m"
   read confirm
   if [ $confirm == 'y' -o $confirm == 'Y' ] ;then
      /bin/rm -rf ~/.trash/*
      /bin/rm -rf ~/.trash/.* 2>/dev/null
   fi  
}
  然后在命令行下面刷新一下环境配置,即可生效:

source ~/.bashrc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 回收站 rm