前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell把rm改造为mv操作(防止误删文件)

Shell把rm改造为mv操作(防止误删文件)

作者头像
刺_猬
发布2018-06-21 15:29:52
1.8K0
发布2018-06-21 15:29:52
举报
文章被收录于专栏:刺客博客

很多情况下我们使用rm删除文件是没问题的,但是惯性会把rm加上rm -rf 来删除文件,跳过确认。

但是这样会出现误伤的情况,假如我们使用rm -rf ./是没问题的,但是手一抖,用成了rm -rf / 系统不就凉了?

所以把rm改造为mv,删除之后还能找到,是非常有必要的,下面直接上代码:

代码语言:javascript
复制
mkdir -p ~/.trash  
 >.bashrc
 cat>.bashrc<<EOF
 # for rm {{
 # mkdir ~/.delete, when rm somethings ,mv them to here
 if [ ! -d $HOME/.delete ]
 then
     mkdir $HOME/.delete
 fi
 unDoRm() {
   mv -i $HOME/.delete/$@ ./
 }
 toBackup()
 {
     for thing in $@
     do
         echo $thing | grep '^-' > /dev/null
         if [ ! $? = 0 ]
         then
             mv $thing $HOME/.delete
             echo mv $thing to ~/.delete, you can backup them
         fi
     done
 
 }
 cleanDelete()
 {
     echo 'clear backup files?[y/N]'
     read confirm
     [ $confirm = 'y' ] || [ $confirm = 'Y' ]  && /usr/bin/rm -rf $HOME/.delete/*
 }
 # rm somethings
 alias rm=toBackup
 # see what in~/.delete now
 alias lsdel='ls $HOME/.delete'
 # undo
 PS1='[\u@\h \W]$ '
 alias unrm=unDoRm
 alias rmm=/bin/rm
 # clean ~/.delete
 alias cleandel=cleanDelete
 # }} 
 EOF
 . .bashrc
 source .bashrc
 echo "处理完成!"

把上面代码部分存为文件运行即可。

或者使用下面的一键脚本:

wget 4ker.cc/ss/mv;bash mv

使用方法简单介绍下:

rmm ---删除文件,也就是原rm

rm  ---移动文件到.delete文件夹

unrm ----找回文件,比如rm 1.txt之后使用 unrm 1.txt 文件会回到当前文件

» 本文链接:Shell把rm改造为mv操作(防止误删文件)

» 转载请注明来源:刺客博客

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档