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
[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
}
[root@10-19-73-64 ~]# source .bashrc 


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

将linux下的rm命令改造成mv到指定的目录下的更多相关文章

  1. 将linux下的rm命令改造成移动文件至回收站【转】

    转自:http://blog.csdn.net/a3470194/article/details/16863803 [-] 将linux下的rm命令改造成移动文件至回收站 将AIX下的rm命令改造成移 ...

  2. linux下修改rm命令防止误删除

    前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. ...

  3. 将linux下的rm命令改造成移动文件至回收站

    将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有 ...

  4. python+selenium之自动生成excle,保存到指定的目录下

    进行之自动化测试,想把自动生成的excle保存到指定的目录下.网上百度的代码如下: import xlwt import time time = time.strftime ('%Y%m%d%H%M% ...

  5. C# 将引用的DLL文件放到指定的目录下

    原文:C# 将引用的DLL文件放到指定的目录下 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sweety820/article/details/2 ...

  6. 【Linux下禁用rm命令之建立回收站】

    第一步 创建回收站目录 # 根据自己的习惯,找个位置创建一个用作回收文件的目录 # 我们这里将在root目录下面创建一个名为".trash"的隐藏文件 [root@fedora ~ ...

  7. 替换linux下的rm命令,并对-rf进行判断

    补充了对根目录,以及-r -rf -f的判断 1.使用root用户在/usr/local目录创建.rmov.sh #!/bin/shPARA_CNT=$#TRASH_DIR="/data01 ...

  8. linux中使用rm命令将文件移到回收站的方法

    今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...

  9. linux命令(13) 删除指定文件夹下后缀名相同的文件

    方法一: find 目录 -name "*.abc" | xargs rm命令有点危险,可以先执行前半段,看看是不是你要删除的文件, 然后再整条执行 方法二:find . -nam ...

随机推荐

  1. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序

    原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词 ...

  2. 我所认识的PCA算法的princomp函数与经历 (基于matlab)

    我接触princomp函数,主要是因为实验室的项目需要,所以我一接触的时候就希望快点学会怎么用. 项目中需要利用PCA算法对大量数据进行降维. 简介:主成分分析 ( Principal Compone ...

  3. [Backbone]2. More detail in Models

    Our Appointment model doesn't seem too useful yet. Add two default attributes, title as the string & ...

  4. Effective C++:条款26:尽可能延后变量定义式的出现时间

    (一) 那么当程序的控制流到达这个变量定义时.变承受构造成本:当变量离开作用域时.便承受析构成本. string encryptPassword(const std::string& pass ...

  5. 多个桌面Deskspace如何使用

    1 给Deskspace设置背景.在DeskSpace选项中设置显示背景为天空箱体图像(软件自带的图像效果,也可以使用静态图像,即自己的图片) 2 给六个桌面各设置一个背景(也可以使用同一个背景)右击 ...

  6. Appium Python 六:管理应用和Activity

    管理应用 1. 将当前应用放到后台 执行之后,应用会被放到后台特定时间.比如这里就是5秒,5秒过后,应用会重新回到前台. driver.background_app(5) 官网示例: driver.b ...

  7. 关于Haxe3新特性“内联构造方法”的解释

    学习过C/C++的童鞋们应该了解inline即内联机制的意义,Haxe语言也很好的支持内联机制,让开发者可以自己在空间效率和时间效率上进行取舍. 从Haxe3开始,构造方法也可以使用inline关键字 ...

  8. base64 图片编码之再优化

    首先进入网站: http://b64.io/ 最多可减少图片体积容量近70%,建议不要优化base 64 图片格式为gif , 已实测如果用gif的话会增加容量.

  9. php+tomcat 配置运行环境

    为了学习php,本教程始于:2017.11.16 完成时的截图! 1.首先下载: VC 2015++ 点击下载 2. 把下载好的php复制到本目录,然后解压并且重命名为“php”,如果没有下载php, ...

  10. Circular dependency issuse on cocoapods version(0.36.0) 全然解决方式(非降版本号)

    此前的文章中.以前提到在cocoapods依赖管理版本号假设超过0.34.4.比方0.35, 0.36.0等版本号中. 运行"pod install" 或者 "pod u ...