rm -rf命令对在linux系统中不言而喻,所以想着禁用了,这样安全些(本着对自己负责的态度)
废话不多说直接贴脚本
vim /scripts/del.sh
#! /bin/bash
# Description: 替换rm命令,不是删除文件,而是移动文件到/home/trash_tmp/
TRASH_DIR="/home/trash_tmp"
for i in $*; do
STAMP=`date +%F-%T` #首先这个是反引号,不是单引号,具体反引号和单引号区别自己查
FileName=`basename $i`
mv $i $TRASH_DIR/$FileName"_"$STAMP
done
在网上搜了些文章都有些局限,如果一个同名文件频繁删除会引起覆盖提示或提示目标非空,所以 STAMP=`date +%F-%T` 我加了小时分钟这样避免上述问题
继续创建
mkdir /home/trash_tmp vim /root/.bashrc #修改rm变量,在配置文件中增加alias rm='sh /scripts/del.sh' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias rm='sh /scripts/del.sh' wq保存
刷新环境变量
source /root/.bashrc
测试
mkdir kkk bbb
rm kkk/ bbb/
ls /home/trash_tmp/
bbb_2020-09-18-14:00:49/ kkk_2020-09-18-14:00:49/
如果想删除这些
只需要加\
\rm -rf /home/trash_tmp/* #加\ 就可以执行删除操作
然后可以做个定时任务清除
crontab -e
00 17 * * 6 \rm -rf /home/trash_tmp/*
至此就结束了,有什么好想法可以与我交流,尤其是mv移动哪里,我是用时间解决的也许你有可能有更好的办法