为rm -f 添加回收站功能 防止误删

rm -f 是非常危险的工具,所以有必要添加一个回收站的机制

操作的目标是  rm -f(rm -rf 也是类似的)的时候,实现将文件暂时放到/tmp/trash(手动添加,名称随意)目录下,而不是直接删除,同时rm 其他的操作还能正常使用。

具体实现方法分为两部:

            写一个脚本完成检测 rm -f操作 并将文件放到 /tmp/trash

            alias 把新的脚本命名为 rm

    脚本放在/bin下比较方便

  vi /bin/fake-rm

#!/bin/bash

#########

#FAKE RM

#########

if [ $1 == "-f" ]

then

mv -f ./$2 /tmp/trash

else

/bin/rm $1 $2

fi

alias操作为:

alias rm=‘fake-rm‘

添加到 /.bashrc

然后生效配置

source

~/.bashrc

这样就完成了rm -f的回收站功能,实际上就是写一个假的rm 来使用,检测到rm -f 触发回收站功能,如果不是-f参数,则使用真的rm 来进行操作。

  

时间: 2024-10-15 15:40:50

为rm -f 添加回收站功能 防止误删的相关文章

误删:[[email protected] scripts]# rm -f /usr/bin/ssh-copy-id

误删除:[[email protected] scripts]# rm -f /usr/bin/ssh-copy-id 的配置文件怎么办? 莫慌!!!你的备份服务器上也有相同的配置文件,以下操作可以帮忙!!! 敲重点!!!!一.[[email protected] ~]# scp -P52113 -rp /usr/bin/ssh-copy-id 10.0.0.61:/usr/binscp 指定端口 -rp 把本机下此配置文件 传输一份到61的机器下的/usr/bin目录下 [email prot

云服务器 ECS Linux 系统添加“回收站”

删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失.在云服务器 ECS Linux 系统中这种危险尤为明显.比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并不会因为这条语句的不合理而拒绝执行. 在 Windows 中,为了防止误删,系统默认提供了回收站功能.用户在执行删除操作后,文件并不会直接从硬盘中删除,而是被放到回收站中.在清空回收站前,如果发现有文件被误删,用户可以将回收站中的文件恢复到原来的位置.而 Linux 并没有提供类似功能,删除命令 r

linux系统回收站功能的实现

如何实现linux系统的回收站功能,对rm权限做限制,避免误删造成不可逆问题. 这就要靠环境变量去实现,首先需要了解环境变量的作用. /etc/profile,/etc/bashrc 是系统全局环境变量设定 ~/.profile,~/.bashrc用户家目录下的私有环境变量设定 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 2

Linux创建垃圾回收站,解决误删操作的烦恼

Linux创建垃圾回收站,解决误删操作的烦恼 --delete安全的删除命令 废话少说直接进入主题 1.创建一个简单的delete命令脚本(因阿诺的英语太渣所用的中文字符集) [[email protected] ~]# vim delete #!/bin/bash #只为一诺 #将删除的文件回收到家目录下的回收站--hsz hsz=~/hsz if [ ! -d $hsz ] then mkdir $hsz fi if [ $# -eq 0 ] then echo "提示用法: delete

HDFS的Trash回收站功能

文件的删除和恢复 和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期,也就是当系统回收站中的文件/目录在一段时间之后没有被用户恢复的话,HDFS就会自动的把这个文件/目录彻底删除,之后,用户就永远也找不回这个文件/目录了.在HDFS内部的具体实现就是在NameNode中开启了一个后台线程Emptier,这个线程专门管理和监控系统回收站下面的所有文件/目录,对于已经超过

linux添加回收站(脚本)

添加回收站,原理是:把rm 改成mv 脚本展示 1.rmtomv.sh内容 $ cat rmtomv.sh #!/bin/bashmkdir -p ~/.trash cat rmtomv.txt >> ~/.bashrc source ~/.bashrc 2.rmtomv.txt内容 $ cat rmtomv.txtalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'# Source global definitionsif [ -f /etc/ba

【百度地图API】情人节求爱大作战——添加标注功能

原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA的爱意吧! 如何实现: 给地图增加一个事件监听,addEventListener: 当鼠标点击地图时,首先获取改点坐标,其次在改点坐标处增加一个红色标注. 图示: 运行代码,请点击这里. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

为Popuplist的下拉选项添加删除功能(NGUI)

NGUI例子里的popuplist是这样的:,但有时我们希望下拉选项都有删除功能,也就是这样:,一种方法是改popuplist的源码,我想这个实现起来不难,但现在我想说的是用反射来实现此功能,以及其他注意点. 第一步:我们查看下popuplist的源码可以发现,他有个OnCLick点击事件,而里面实现的就是绘制所有下拉选项的,并且所有下拉选项的的父节点都是mChild这个私有字段, 第二步:我们只要给popuplist再附加一个我们自己写的脚本A,在这个脚本里面通过反射mChild的孩子,就可以

不小心执行 rm -f,该如何恢复?

前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵. 那么如果真的删除了不该删除的文件,比如数据库.日志或执行文件,咋办呢?欲知后事如何,请仔细看完本篇博客. 模拟场景 1.删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: > rm -f /root/selenium/Spider/MySql.Data.dll> ll /root/selen