change rm to mv

马有失蹄,今天用 rm 指令误删了一个重要的文件,虽然有备份,但是让我感受到深深的恐惧,以前在一些论坛上看到过类似的帖子,还笑话他们手笨.只有当事情发生在自己身上是才会长记性.今天就彻底解决这件事.

经过网上的搜罗,找到一个比较棒的解决方案,以便以后系统挂了,可以来这看看.进入正文.

将rm 替换成mv 在shell的配置文件里添加几行配置代码就行了,我用的是oh-my-zsh当然是.zshrc了,如果是bash的话,也就是.bashrc喽.下面是在网上找的配置方法.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile
undelfile()
{
mv -i ~/.trash/$@ ./
}
trash()
{
mv $@ ~/.trash/
}
cleartrash()
{
read -p "clear sure?[n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}

解释一下意思: 上面的代码就是说你登陆后他就会在你的用户根目录下创建一个隐藏文件夹.trash,当你执行rm命令时,其实是执行mv命令,将你要删除的文件移动到.trash中.这样你要删除的文件只是被移动到另一个文件夹里,然后你可以定期对.trash文件夹进行清空,这样就起到了一个缓冲作用,允许你删除前思考一下.

另两指令rl和ur就是查看回收站和和恢复文件.其中 ur指令用法为:

$ ur 要回复的文件

此时在当前文件夹就会有你要恢复的文件
再也不怕

$ rm -rf / 

End