预期效果:

在刚工作的时候,我犯过一个致命的新手错误,那就是误删文件或者配置,导致服务配置文件缺失等错误。虽然有异地备份,不过为了采取故障恢复最短时间原则,还是觉得本地有个回收机制比较好,就类似于windows的回收站。

配置步骤:

设置环境变量:

mkdir -p /wakamizu/shell
echo "PATH=$PATH:/wakamizu/shell" >> /etc/bashrc
source /etc/bashrc

编写回收脚本

vim /wakamizu/shell/wakamizu_rm

#!/bin/bash
trash_path=/.trash
[[ ! -d $trash_path ]] && mkdir $trash_path
if [[ "$1" =~ ^- ]];then
        num=$[$#-1]
        shift 1
        for(( i=1;i<=$num;i++ ));do
        if [ `dirname $1` = "." ];then
        dir_path=$trash_path`pwd`
        else
        dir_path=$trash_path`dirname $1`
        fi
        [[ ! -d $dir_path ]] && mkdir -p $dir_path
        mv -f --backup=numbered $1 $dir_path
        shift 1
        done
else
        num=$#
        for(( i=1;i<=$num;i++ ));do
        if [ `dirname $1` = "." ];then
        dir_path=$trash_path`pwd`
        else
        dir_path=$trash_path`dirname $1`
        fi
        [[ ! -d $dir_path ]] && mkdir -p $dir_path
        mv -f --backup=numbered $1 $dir_path
        shift 1
        done
fi

给予脚本执行权限

chmod +x /wakamizu/shell/wakamizu_rm

建立回收站目录,并设置权限

mkdir /.trash && chmod 777 /.trash

更改rm别名为wakamizu_rm

alias rm='wakamizu_rm'

查看rm别名是否生效

rm别名更改永久生效

echo "alias rm='wakamizu_rm'" >> /etc/bashrc
source /etc/bashrc

清空回收站脚本

vim /wakamizu/shell/wakamizu_empty_trash

#!/bin/bash
rm -rf /.trash/*

添加执行权限

chmod +x /wakamizu/shell/wakamizu_empty_trash

Reference Author: 【derek】