一个rm命令使用不当,可能所有文件全部丢失,所以准备让系统禁用rm -rf这种毁灭性命令。

由于简装系统,没有回收站机制,所以手动创建一个,方法也很简单,执行一个脚本即可。

脚本文件:

vim trash.sh

#/bin/bash

mv ~/.bashrc ~/.bashrc.bak
cat>~/.bashrc<<'EOF'
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

#/bin/bash
mkdir -p /app/.trash #从这里是需要添加的内容
alias rm=trash
alias r=trash
alias lt='ls /app/.trash/'
alias uf=undelfile
alias qingkong=cleartrash
undelfile()
{
    mv -i /app/.trash/$@ ./
}

trash()
{
        del_date=`date +%Y%m%d%H%M%S`
    # 循环是因为可能rm多个文件
    for arg in "$@"
    do
       # 这里将删除时间加入到文件名后是因为mv命令不能覆盖非空目录以及不能使用文件覆盖文件夹
       # 加上时间就不会有同名的文件了
       mv $arg /app/.trash/$arg-${del_date}
    done
}

cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf /app/.trash/*
}

EOF
#立即生效
source ~/.bashrc

#使用说明
#查看回收站:lt
#还原文件:uf + 文件名  (只能还原到当前位置)
#清空回收站:qingkong
View Code

把附件下载后上传到服务器,运行

sh  trash.sh

#使用说明

查看回收站:lt

还原文件:uf + 文件名  (只能还原到当前位置)

清空回收站:qingkong  (永久删除,相当于rm -rf)