一个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
把附件下载后上传到服务器,运行
sh trash.sh
#使用说明
查看回收站:lt
还原文件:uf + 文件名 (只能还原到当前位置)
清空回收站:qingkong (永久删除,相当于rm -rf)