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

很多情况下我们使用rm删除文件是没问题的,但是惯性会把rm加上rm -rf 来删除文件,跳过确认。 但是这样会出现误伤的情况,假如我们使用rm -rf ./是没问题的,但是手一抖,用成了rm -rf / 系统不就凉了? 所以把rm改造为mv,删除之后还能找到,是非常有必要的,下面直接上代码:

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操作(防止误删文件) » 转载请注明来源:刺客博客

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

RedHat Linux服务器安全配置细节

云豆贴心提醒,本文阅读时间8分钟 1.概述 Linux服务器版本:RedHat Linux AS 2.1 对于开放式的操作系统---Linux,系统的安全设...

3346
来自专栏有趣的Python

最新Django2.0.1在线教育零基础到上线教程(六)4-10

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGe...

5247
来自专栏我和PYTHON有个约会

爬虫0020:urllib2操作urllib2的使用

至此,我们可以描述爬虫程序,就是用来根据一定的规则采集获取网络中的数据的! 整个采集过程主要步骤如下:

1073
来自专栏散尽浮华

Linux下FTP虚拟账号环境部署总结

vsftp的用户有三种类型:匿名用户、系统用户、虚拟用户。 1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。 2)本地用户登录:...

4188
来自专栏互联网技术栈

Redis 队列

举例: 队列主要用在系统解耦、流量削峰、异步处理、数据顺序处理等场景。新手在使用时可能会犯一些常见的错误。下面讲一个新手容易犯的错误,在这个示例中把队列的入...

2365
来自专栏张善友的专栏

介绍一位OWin服务器新成员TinyFox

TinyFox 是一款支持OWIN标准的WEB应用的高性能的HTTP服务器,是Jexus Web Server的"姊妹篇"。TinyFox本身的功能是html服...

2106
来自专栏华仔的技术笔记

Block类型变量-缓存Http请求与回调

3406
来自专栏SpringBoot 核心技术

第七章:SpringBoot整合JavaMail发送邮件

1864
来自专栏数据和云

使用 Oracle 的 Security External Password Store 功能实现数据库加密登陆

编辑手记:让安全成为一种习惯,使用 Oracle 的 Security External Password Store 功能实现加密登录, 不将明文密码暴露在生...

4356
来自专栏北京马哥教育

教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户,RPM的安装、更新、删除中存在的依赖关系已经...

32311

扫码关注云+社区