不学网

 找回密码
 立即注册

只需一步,快速开始

手机号码,快捷登录

查看: 480|回复: 0

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

[复制链接]
admin 发表于 2018-1-2 14:33:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

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


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

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

这里我用到的是:
  1. [root@10-19-73-64 ~]# mkdir /data/rubbish<br>[root@10-19-73-64 ~]# vim .bashrc
  2. #添加以下字段
  3. #修改rm
  4. #####
  5. alias rm=trash
  6. alias r=trash
  7. alias rl='ls /data/rubbish'
  8. alias ur=undelfile
  9. undelfile()
  10. {
  11.   mv -i /data/rubbish/\$@ ./
  12.   #mv -i ~/.trash/\$@ ./
  13. }
  14. trash()
  15. {
  16.   mv $@ /data/rubbish
  17. }
  18. 1
  19. [root@10-19-73-64 ~]# source .bashrc
复制代码
这个时候我们可以定时的去清理以下垃圾箱



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|不学网

GMT+8, 2018-9-19 05:45

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表