zoukankan      html  css  js  c++  java
  • Linux实现删除撤回的方法。

    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()
    {
    if [ ! -d "/trash/" ];then
             mkdir /trash
    fi
    mv --backup=numbered $@ /trash/
    }
    cleartrash()
    {
        read -p "clear sure?[n]" confirm
        [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf /trash/*
    }
    source /etc/bashrc
     
    还有一种改造的方法见这里
     
    使用原生删除
    /bin/rm -rf /trash
     
    定时清空回收站
    新建一个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 #把该文件还原到当前所在目录
    --------------------- 
    作者:xun-ming 
    来源:CSDN 
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    L3-015. 球队“食物链”【DFS + 剪枝】
    L3-002. 堆栈【主席树 or 线段树 or 分块】
    PTA L1-006 连续因子【暴力模拟】
    【路由和交换之H3C自导自演】
    【ospf-stub区域配置】
    【ospf-链路验证】
    【ospf-vlink虚拟连接】
    【c学习-14】
    【c学习-13】
    【php学习-5】
  • 原文地址:https://www.cnblogs.com/moegarn/p/10913652.html
Copyright © 2011-2022 走看看