前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将linux下的rm命令改造成mv到指定的目录下

将linux下的rm命令改造成mv到指定的目录下

作者头像
java达人
发布2018-01-31 15:34:23
2.7K0
发布2018-01-31 15:34:23
举报
文章被收录于专栏:java达人java达人

来源:博客园-BigBao的博客

链接:http://www.cnblogs.com/smail-bao/p/6347347.html(点击文末阅读原文前往)

小编语:

昨晚一条新闻刷爆朋友圈,GitLab.com一位身处荷兰的疲惫系统管理员在进行数据库复制过程中不小心在一台错误的服务器上删除了一个目录,他删除了一个包含300GB实时产品数据的文件夹,在取消rm -rf删除命令后该文件夹只剩下4.5GB 数据(http://www.chinaz.com/server/2017/0202/651410.shtml)。

后台开发、维护是比较默默无闻的工作,一旦被关注,往往是背锅、负责任的时候,对线上的文件、数据库的修改、删除操作一定要注意备份,慎之又慎。如使用这个rm命令,尽管出意外的概率很低,而一旦出意外,影响是很大的。

rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./* 这没什么,但是,但是如果不小心打成这样 #rm -rf /* 兄弟请节哀吧!~~ rm删除文件同时删除inode信息,这使得使用rm删除的文件十分难恢复。总之rm太危险了,特别是带有-rf参数时一定要慎之又慎,但老虎也有打盹的时候啊,所以为什么不给rm一剂后悔药呢!

mkdir -p ~/.trash  //创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录
alias rm=trash  //命令别名 rm改变为trash,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站
alias r=trash 
alias rl='ls ~/.trash' // rl 命令显示回收站中的文件
alias ur=undelfile // ur命令找回回收站中的文件
undelfile() //这个函数的作用是找回回收站下的文件
{ 
 mv -i ~/.trash/\$@ ./ 
} 
trash() //这个函数是将指定的文件移动到指定的目录下,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站
{ 
 mv $@ ~/.trash/ 
} 
cleartrash()  //这个函数的作用是清空回收站目录下的所有文件
{ 
 read -p "clear sure?[n]" confirm  
 [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ~/.trash/*  
} 

这段代码定义了三个函数trash、undelfile和cleartrash。trash的作用是移动文件到指定的回收站目录;undelfile的作用是找回回收站目录中的指定文件;cleartrash的作用是清空回收站目录。经rm命令别名为trash来实现rm命令的改造!

下面是我修改后的代码,直接在用户家目录下创建。trash目录作为回收站,将其它代码加入用户家目录下的.bashrc文件下,这样用户每次登录这段代码就会自动生效!登录后在bash下执行一遍下面的命令就可以把rm命令改造成删除文件到回收站了!

这里我用到的是:

[root@10-19-73-64 ~]# mkdir /data/rubbish<br>[root@10-19-73-64 ~]# vim .bashrc
#添加以下字段
#修改rm
#####
alias rm=trash
alias r=trash
alias rl='ls /data/rubbish'
alias ur=undelfile
undelfile()
{
 mv -i /data/rubbish/\$@ ./
 #mv -i ~/.trash/\$@ ./
}
trash()
{
 mv $@ /data/rubbish
}<br><br><br>
[root@10-19-73-64 ~]# source .bashrc

<br><br><br>

这个时候我们可以定时的去清理以下垃圾箱

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java达人 微信公众号,前往查看

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

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

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