防止rm -rf误操作

经常有误操作删库的新闻,今天在逛Linux论坛发现不错的方法,这里记录一下,侵删

原理很简单,设置一个类似Windows下的回收站的功能。
在~下 .bashrc或者.bash_profile加入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mkdir -p ~/.trash

alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile

undelfile()

{

mv -i ~/.trash/$@ ./

}

trash()
{
mv $@ ~/.trash/
}

这样执行rm就相当于执行了mv

  • 注:此时已经木有rm -rf了
    删除的文件会在.trash中出现 可以进行恢复
    这就有一个问题:如何清空回收站呢,rm在这里是木有用的,所以在刚才.bashrc下继续加函数:
    1
    2
    3
    4
    5
    6
    7
    cleartrash()

    {
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /usr/bin/rm -rf ~/.trash/*
    }
    $. .bashrc
    然后,如果想清空回收站的话,执行$cleartrash就行了。