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 
版权声明:本文为博主原创文章,转载请附上博文链接!

Linux实现删除撤回的方法。的更多相关文章

  1. linux下删除.svn的方法

    find ./ -type d -name ".svn" | xargs rm -rf

  2. Linux上删除空行的方法

    grep . data.txt grep-v'^$' data.txt grep'[^$]' data.txt sed'/^$/d' data.txt sed'/^\s*$/d' data.txt # ...

  3. Linux下删除的文件如何恢复

    Linux下删除的文件如何恢复 参考自: [1]linux下误操作删除文件如何恢复 [2]Linux实现删除撤回的方法 以/home/test.txt为例 1.df -T 文件夹 找到当前文件所在磁盘 ...

  4. linux下删除空行的几种方法

    在查看linux下的配置文件时,为了便于一目了然的查看,经常会删除空行和#头的行.而linux在删除空行的方法很多,grep.sed.awk.tr等工具都能实现.现总结如下: 1.grep grep ...

  5. Linux服务器删除乱码文件和文件夹的方法

    Linux服务器删除乱码文件和文件夹的方法 首页进入乱码文件所在文件夹由于php大势所趋,所以接触Linux服务器的机会越来越多.不同于Windows服务器,Linux服务器只支持数字.英文等字符,对 ...

  6. Linux 快速删除大量小文件方法

    进行以下两步操作即可: 1.第一步:创建空的文件夹: mkdir  /tmp/blank 2.第二步:执行以下命令:rsync --delete-before -d /tmp/blank/ /home ...

  7. linux中删除文件内空白行的几种方法。

    linux中删除文件内空白行的几种方法 有时你可能需要在 Linux 中删除某个文件中的空行.如果是的,你可以使用下面方法中的其中一个.有很多方法可以做到,但我在这里只是列举一些简单的方法. 你可能已 ...

  8. Linux rm 删除指定文件外的其他文件 方法汇总

    一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹 . 二.删除制定文件(夹)之外的所有文 ...

  9. [转]❲阮一峰❳Linux 守护进程的启动方法

    ❲阮一峰❳Linux 守护进程的启动方法 "守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 ...

随机推荐

  1. Qt 进程和线程之二:启动线程

    Qt提供了对线程的支持,这包括一组与平台无关的线程类.一个线程安全的发送事件的方式,以及跨线程的信号槽的关联.这些使得可以很容易地开发可移植的多线程Qt应用程序,可以充分利用多处理器的机器.多线程编程 ...

  2. DB2 错误码解析

    DB2 错误代码大全——SQLSTATE 消息   SQLSTATE 消息本节列示 SQLSTATE 及其含义.SQLSTATE 是按类代码进行分组的:对于子代码,请参阅相应的表. 表 2. SQLS ...

  3. MySQL简单的确定瓶颈

    如果接到报警可能需要ssh看看瓶颈是什么,怎么下手 确定os层 确定磁盘是否够用的:df –h 再看看系统整体状态: top 哪些进程占用资源比较多,能杀就杀 系统的负载 vmstat看看wa值,r列 ...

  4. 上白泽慧音——tarjian

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  5. webApi Authentication failed because the remote party has closed the transport stream\身份验证失败了,因为远程方关闭了传输流。

    public class CertificateTrust { public static void SetCertificatePolicy() { //当在浏览器中可以正常访问,而code中出现错 ...

  6. IP Addresses of Google Global Cache

    Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123. ...

  7. PHP小数处理常用函数

    1.php保留两位小数并且四舍五入 $num = 123213.666666; echo sprintf("%.2f", $num); // 123213.67echo round ...

  8. Alpha-beta pruning

    function alphabeta(node, depth, α, β, maximizingPlayer) or node is a terminal node return the heuris ...

  9. 实用IMX6开发板来袭, 方便开发板方便你

    这是迅为电子推出的一款IMX6Q开发板是Freescale Cortex-a9四核处理器,采用底板加核心板形式,稳定耐用,拆卸非常的方便,同一底板兼容四种核心板,分别为四核商业级,四核工业级,双核商业 ...

  10. mvc的model验证,ajaxhelper,验证机制语法

    ajaxhelper: onsuccess是调用成功后显示方法,还有一个方法是调用前显示 model验证: 控件前端验证: 需要引入的JS 其中第二个是ajaxhelper的必须验证 后台的两个同名不 ...