linux下rm命令改造-把文件删除到回收站

灵感来源

(1)创建了一个"~"目录,然后rm -fr ~,然后就没有然后了(no zuo no die)!

(2)常在河边走,哪有不湿鞋,我们可能就会有几次误删操作,如果严重的话,删库跑路也不是不可能,所以我们有必要建立一个像windows系统一样的回收站机制,删了可以找回!

        删文件本质:是把这个文件mv转移到另外一个路径,正常的rm是把文件直接从磁盘上转移抹除了,而我们可以不这样做,我们可以写一个命令让它mv到一个文件夹,把这个文件夹当作回收站,误删了从这个文件夹里就可以找回,然后为了防止存储溢出,可以制定策略定时清理之前的文件。

参考1

思考:能不能过渡一下,再给自己个机会,一旦不小心误删了

说明:Linux下的回收站内容位于~/.local/share/Trash/files/,

思路:模拟实现删除文件到回收站,其实就是文件移动命令

方法1:我们可以在用户目录下新建一层回收站,通过alias修改rm删除文件的路径(用户级别)

流程如下:

(1)在用户目录新建.trash回收站:

mkdir ~/.trash

(2)在.bashrc末尾中添加如下配置:

# 修改rm
alias rm=trash
alias r=trash #这个似乎无用
alias rl='ls ~/.trash/'
alias ur=recoverfile

#恢复文件->Restore的功能,注意:回收站的所有内容都是此种rm别名形式删除的,并且可逆操作都在当前目录
recoverfile()
{
    mv -i ~/.trash/$@ ./
}

#通过mv来实现的
trash()
{
    mv $@ ~/.trash
}

注意:修改完毕后,使用source .bashrc更新下,然后你就可以使用如下命令了:

  • rm: 删除文件到回收站
  • rl: 查看回收站内容
  • ur: 恢复文件到当前目录

####################################分割线####################################

方法2:靠谱一点(采用这个-->系统级别)

(1)新建个脚本,内容如下(最好是root用户创建)

# script to send removed files to trash directory
mv $@ ~/.local/share/Trash/files          
#回忆:有$1~$9个数量, $@代表all
#脚本名字:rm.sh

(2)

注意:文件的保存路径为/bin ,同时修改属性

 chmod a+x /bin/rm.sh

(3)修改rm 命令句柄,修改rm别名的形式

       级别1:只对当前用户生效:

             vim ~/cshrc(bashrc)

       级别2:对所有用户生效:

              vim /etc/bashrc

 核心:在末尾添加如下代码到其中:

alias rm=/bin/rm.sh
#更新 
source /etc/bashrc

缺点:通过鼠标发现没有Restore的选项!

方法3自定义命令(shell-->系统级别)

综上所述:都是通过自定义脚本或者函数的形式,通过调用函数或者脚本来达到目标!

其它

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值