X.com@fuminccho
507 words
3 minutes
Linux 修改 rm 命令防止误操作
一直以来 rm 就是一个危险的操作,关于这个命令还有不少幽默段子以及真实经历,为了自己的人生不戏剧化,所以我决定对它进行改造改造。
思路上最简单的就是两种:
1. 一是修改系统登录用户根目录下的~/.bashrc文件,这种方式定制性强,只针对单独用户生效。
2. 二是修改/etc/bashrc文件,这种方式对系统中所有用户有效。
两种方式的区别仅为是否所有用户生效,所使用的代码是一致的,本文以第二种方式说明。
其实有很多桌面发行版已经做好了对 rm 命令的限制,比如判读一下删除目录是不是**/**根目录啥的,所以想到这里就先去网上搜一搜看看有没有轮子,不重复造轮子可以节约你人生的很多时间。
于是乎找到了一位网游分享出来的成果,链接在文章底部附上,本文代码笔者略有优化:
执行以下命令对bashrc文件进行编辑,建议先备份原文件:
#备份文件cp /etc/bashrc /etc/bashrc.bak#使用vi编辑文件,替代品很多例nano,vim,哪个顺手用哪个即可vi /etc/bashrc在文件最底部输入如下代码:
# replace 'rm' with 'saferm'TRASH_PATH=/.trashsaferm(){ if [ ! -d ${TRASH_PATH} ] then mkdir -p ${TRASH_PATH} chmod 777 ${TRASH_PATH} if [ $? -ne 0 ] then echo "Error: 'saferm' failed to create path ${TRASH_PATH}" echo "If you do it convinced, please use '/bin/rm' to continue." echo "If you want disable 'saferm',please 'vi /etc/bashrc' and 'source /etc/bashrc' to make it valid." fi fi
local dst=`mktemp -d -p ${TRASH_PATH}` local arg=`echo $* | sed "s/\(^-\w\+\)\|\(\s-\w\+\)/ /g"` echo "safe-rm ${arg} to ${dst}" mv ${arg} ${dst}}alias rm='saferm'其中TRASH_PATH可以指定为你喜欢的目录,退出编辑后执行source命令来让文件生效:
source /etc/bashrc同理判断删除路径是否为/也可以在该方法中判断,建议自己完善,当作学习Linux的课后作业。
Linux 修改 rm 命令防止误操作
https://blog.doracoin.cc/posts/2018/2018-07-18-linux-修改-rm-命令防止误操作/