关闭

Linux回收站功能的实现

标签: linuxcrontabalias回收站定时器
35人阅读 评论(0) 收藏 举报
分类:

RM命令改造

vim /etc/bashrc

在文件的最前端添加如下代码

#修改rm命令
alias rm=delete  #命令别名,通过delete来实现rm改为mv
alias r=delete
alias rl='ls /trash' #rl 命令显示回收站中的文件
alias ur=undelfile #ur 命令找回回收站的文件
undelfile()
{
    mv /trash/$@ ./
}
delete()
{
    \mv --backup=numbered $@ /trash
}
cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf /trash/*
}
source /etc/bashrc

还有一种改造的方法见这里

定时清空回收站

新建一个shell文件,比如trash.sh,核心代码如下

# (empty trash)clean the trash directory
# everyday on 3am,delete all files 3 days ago 
# and write deleted files information into speacial file 
* 3 * * * find /trash/* -ctime +3 -fls /home/crontab/trash.txt
* 3 * * * find /trash/* -ctime +3 -delete
* 3 * * * /home/crontab/./trashdate.sh

一共有3行命令,执行时间都是每天凌晨三点
命令一:找到回收站中三天前伪删除的文件,并把这些文件的相信信息写入到指定文件中
命令二:找到回收站中三天前伪删除的文件,并把这些文件彻底删除
命令三:执行另外一个脚本文件,见下一个标题
然后提交给crontab

crontab trash.sh

提交完成后,这个trash.sh就可以删除了,因为trash.sh中的内容已经在执行了,当然还有其他命令

crontab -l #查看在执行的定时器任务
crontab -e #编辑定时器
crontab -r #删除定时器
crontab trash.sh #找回定时器

记录删除时间

trashdate.sh的核心代码如下

sed -i "1i$(date "+%Y-%m-%d %H:%M:%S")" /home/crontab/trash_date.txt #代码1

原来使用的是

date >> /home/crontab/trash_date.txt #代码2

代码2只是写入到文件的内容类似以下格式

Thu Jan 18 03:06:01 CST 2018

而且 >> 这个是linux到追加命令,只会把新的内容追加写入到文件末尾

而代码1就不一样了,sed -i可以把内容指定写入到某一行,再加上linux中到日期变量,最后代码1写入到文件的内容类似以下格式

2018-01-01 08:30:01

使用方式

1、删除文件时,比如文件为test.txt

rm test.txt 或者 r test.txt

这里不需要加任何参数,比如-r之类的

2、查看回收站内容

rl

要查看回收站内容详细信息,只要加个参数就好

rl -lh 

3、清空回收站

cleartrash #会弹出是否清空

4、找回被“删除“的文件

undelfile test.txt 或者 ur test.txt #把该文件还原到当前所在目录
0
0
查看评论

回收站功能实现

问题场景有这样一个类似回收站的需求,要求记录删除只是暂时的,可以还原回去。这很像我们删除文件到回收站的流程。解决方式a 增加一个字段标记删除的状态 b 当点击删除时只是把标记标为‘DELETED’ c 在回收站界面只展示这些状态为‘DELETED’的记录,在回收站界面点击删除就是真正删除记录了,...
  • sand_clock
  • sand_clock
  • 2017-09-05 13:22
  • 230

Thinkphp-实现文章回收站的功能

1.在jiu_article表里加入 article_is_delete字段,默认值0 2.在文章显示页面,进行如下修改: article_is_delete如果为值0就显示,如果值为1就不显示。 控制器里如下所示: 3.在showlist模板里增加删除到回收站功能: 控制器里如下所示: 4...
  • u014796999
  • u014796999
  • 2015-10-13 11:57
  • 984

在Linux上设置自己的回收站(防止误删除!)

转载地址:http://www.itxbo.com/linux/369.html   前些天,犯了个极其弱智的错误,在公司的服务器上(CentOS 5.5)执行rm 删除操作,由于粗心执行了条 rm -rf ?/var/web/悲剧发生了,问题很严重,差点吐血。。。。。后来机房帮忙将硬...
  • wang1144
  • wang1144
  • 2012-09-13 15:52
  • 1432

分享一个网站回收站的思路,已经实现,适用于新闻和图片等。

回收站思路
  • Alittile_seven
  • Alittile_seven
  • 2017-12-19 14:14
  • 96

Linux回收站的设计与实现

Linux回收站的设计与实现作为Linux系统管理员或者软件开发人员,当你使用rm命令删除文件之后发现该文件依然有用但无法恢复,或者使用 ‘rm -rf’强制误删了某些文件时,是否为此感到痛苦不堪。是否苦恼于Linux缺乏类似Windows系统的回收站。虽然某些Linux图形界面具有回收站功能,但是...
  • messidona11
  • messidona11
  • 2016-12-27 10:16
  • 2979

Linux删除文件实现回收站功能

从事过服务器维护的人都知道rm、rm -rf 的厉害,执行起来一点也不马虎,有点六亲不认的感觉。刚开始我也没觉得rm的厉害,经过昨天rm掉我几天的工作量,我才发现rm就是一把双刃剑,幸好我的服务器有打快照,让我只损失了一天的工作量。 通过亲身体会到了rm的厉害,我不得不在以后的Linux维护...
  • u014057054
  • u014057054
  • 2016-08-05 10:17
  • 2264

linux 回收站 路径

~/.local/share/Trash 管理员在2009年8月13日编辑了该文章文章。 --> --> ...
  • ztguang
  • ztguang
  • 2016-03-30 10:33
  • 2520

在linux设置rm -rf 回收站

修改root用户的环境变量 vi ~/.bashrc 注释第5行的别名 #alias rm='rm -i' 最后一行添加如下内容 mkdir -p ~/.trash  ...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2017-02-07 12:26
  • 647

linux 实现回收站功能

话不多说,直接代码:  #!/bin/sh # 创建回收站目录 MYRM="/var/tmp/rm" if [ ! -d ${MYRM} ]; then     mkdir ${MYRM} fi # 移动文件到回收站 function ...
  • u014752451
  • u014752451
  • 2017-11-08 14:18
  • 31

【Java学习】垃圾回收站原理

垃圾回收期会检查托管堆中是否有应用程序不再使用的任何对象。如果有,他们的内存就可以回收。     JIT编译器生成本地代码时,还会创建一个内部使用的表。从逻辑上来讲,该表中的每个记录项都代表在方法的本地CPU指令中的一个字节偏移范围,针对每个范围,这个记录项都记录了包...
  • lq83623
  • lq83623
  • 2015-04-17 17:52
  • 883
    个人资料
    • 访问:177214次
    • 积分:2801
    • 等级:
    • 排名:第15119名
    • 原创:58篇
    • 转载:5篇
    • 译文:0篇
    • 评论:52条
    联系我吧
    我的App
    博客专栏
    文章分类