一不小心将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