因为发生了不止一次,一时脑抽删除项目文件的经历。在网上搜了下,
google出来的第一个结果就很好用,大概是作者复制粘贴的问题,echo字体颜色这里有一点小问题,修改了下,让它可以正常显示。另外考虑到重名文件夹的问题,又参考另一个帖子的思路,在移入~/.trash文件夹后,在文件名后加入删除时间,防止重名。
代码如下,复制到~/.bashrc中,修改后执行source ~/.bashrc
就可以了。
alias rm='trash'
alias rl='trashlist'
alias ur='undelfile'
#替换rm指令移动文件到~/.trash/中
trash()
{
mv $@ ~/.trash/$@.`date +%Y%m%d-%H:%M:%S`
}
#显示回收站中垃圾清单
trashlist()
{
echo -e "\033[32m==== Garbage Lists in ~/.trash/ ====\033[0m"
echo -e "\033[33m----Usage------\033[0m"
echo -e "\033[33m-1- Use 'cleartrash' to clear all garbages in ~/.trash!!!\033[0m"
echo -e "\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 "\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
}
问题
- 这样的写法只能删除当前目录下的文件内容,如果是删除指定目录下的某个文件会有问题。
- 网上看到一种说法,直接修改rm,可能会影响系统的运行。