目录
运维组新来了的一个小姐姐,在服务器上玩命令行,误删了一个重要的配置文件。
?
本来是件挺严重的事,但她泪眼汪汪的看着我,真的不忍心责怪
?
?
只能硬着头皮,翻文档 七拼八凑一下午 才把文件内容找回来
?
?
不能让她在服务器上过于奔放,只能找个方法限制她。
?
?
?
rm -rf 是一个极其危险的操作,而且Linux端不像windows,有回收站的的后悔药可以吃。
所以一旦误操作,就有可能造成不可挽回的后果。
创建一个路径来作为我们的回收站:cd ~ && mkdir .trash
#/root/.trash路径,即作为我们的回收站路径
当然,这里要注意你分区空间的情况,这个回收站位置,生产环境尽量放在空间较大的分区下。
如果,只是自己玩玩,可以随便放。
2、重新一下rm命令
在.bashrc中重写删除命令的代码
赋予最高权限:chmod 777 .trash
修改你的 home 目录下的:.bashrc:vim ~/.bashrc
# rm transform
function rm() {
# 定期清理回收站,时间可调整
now=$(date +%s)
for s in $(ls --indicator-style=none $HOME/.trash/) ;do
dir_name=${s//_/-}
dir_time=$(date +%s -d $dir_name)
# if big than one month then delete
if [[ 0 -eq dir_time || $(($now - $dir_time)) -gt 2592000 ]] ;then
echo "Trash " $dir_name " has Gone "
/bin/rm $s -rf
fi
done
# 重写rm命令,将文件mv到回收站下
prefix=$(date +%Y_%m_%d)
hour=$(date +%H)
mkdir -p $HOME/.trash/$prefix/$hour
if [[ -z $1 ]] ;then
echo 'Missing Args'
return
fi
echo "Hi, 小姐姐 " ${!#} "已被移到回收站了呢~"
mv ${!#} $HOME/.trash/$prefix/$hour
}
source ~/.bashrc
#使配置文件立即生效,最后 我们来做一下测试
#创建测试文件
[root@mail ~]# touch test.txt
#使用rm -rf 删除该文件
[root@mail ~]# rm -rf test.txt
Hi, 小姐姐 test.txt 已被移到回收站了呢~
#创建测试文件
[root@mail ~]# touch aaa.txt
#使用rm 删除该文件
[root@mail ~]# rm aaa.txt
Hi, Trashing aaa.txt to /root/.trash
#查看一下回收站里的文件,已经被成功移过来了
[root@mail ~]# ll /root/.trash/2020_07_17/17/
total 0
-rw-r--r-- 1 root root 0 Jul 17 17:16 222
-rw-r--r-- 1 root root 0 Jul 17 17:36 aaa.txt
-rw-r--r-- 1 root root 0 Jul 17 17:14 eeee
-rw-r--r-- 1 root root 0 Jul 17 17:36 test.txt
现在我们删除一个测试文件:
rm a.txt 或者 rm -rf aaa.txt
会显示:Hi, 小姐姐 aaa.txt 已被移到回收站了呢~
?
因为我们上面的 shell 每次触发 rm 命令的时候都会去删除一个月前的目录,
所以就不需要定时器来删除 .trash 里面的文件了。
当然,你也可以不用定期删除。
选择手动去清空回收站
?
如果强制清空"回收站"(即清空 .trash 目录),
可以使用真正的 rm 命令:/bin/rm -rf ~/.trash/*
做一个回收站送给爱删除的你
从今以后,你的删除 我接盘了
rm -rf 你随便用,你玩删除的时候,已经不是删除了~emmm
?
?
项目中用到的一些特殊字符和图标 html代码 XML/HTML Code 复制内容到剪贴板 div ...
工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。...
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特...
本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如...
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报...
DELETEFROMTablesWHEREIDNOTIN(SELECTMin(ID)FROMTablesGROUPBYName) Min的话保...
4月11日20:30~22:00通过腾讯会议进行了第二次在线学习讨论我把学习笔记整理一下...
正则忽略大小写 – RegexOptions.IgnoreCase 例如: 复制代码 代码如下: Str = R...
上篇文章给大家介绍了 Java正则表达式匹配,替换,查找,切割的方法 ,接下来,...
复制代码 代码如下: % URL="http://news.163.com/special/00011K6L/rss_newstop....