转自:http://blog.csdn.net/a3470194/article/details/16863803

[-]

将linux下的rm命令改造成移动文件至回收站
将AIX下的rm命令改造成移动文件至回收站 将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./* 这没什么,但是,但是如果不小心打成这样 #rm -rf /* 兄弟请节哀吧!~~ rm删除文件同时删除inode信息,这使得使用rm删除的文件十分难恢复。总之rm太危险了,特别是带有-rf参数时一定要慎之又慎,但老虎也有打盹的时候啊,所以为什么不给rm一剂后悔药呢! 经过在网上不断的寻找,我找到了一段将rm命令改造为把文件移动到一个指定的回收站目录下,然后可以查看回收站目录下的文件,然后在清空回收站目录彻底删除文件的一段代码,这短代码的原始出处已经无从考究,但本着独乐乐不如众乐乐的精神把它分享出来! mkdir -p /.trash #创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录 alias rm=trash #命令别名 rm改变为trash,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站 alias r=trash alias rl=’ls ~/.trash’ # rl 命令显示回收站中的文件 alias ur=undelfile # ur命令找回回收站中的文件 undelfile() { mv -i ~/.trash/\$@ ./ } #这个函数的作用是找回回收站下的文件 trash() { mv $@ ~/.trash/ } #这个函数是将指定的文件移动到指定的目录下,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站 cleartrash() { read -p “clear sure?[n]” confirm [$confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* } #这个函数的作用是清空回收站目录下的所有文件 这段代码定义了三个函数trash、undelfile和cleartrash。trash的作用是移动文件到指定的回收站目录;undelfile的作用是找回回收站目录中的指定文件;cleartrash的作用是清空回收站目录。经rm命令别名为trash来实现rm命令的改造!下面是我修改后的代码,直接在用户家目录下创建。trash目录作为回收站,将其它代码加入用户家目录下的.bashrc文件下,这样用户每次登录这段代码就会自动生效!登录后在bash下执行一遍下面的命令就可以把rm命令改造成删除文件到回收站了! mkdir -p ~/.trash cat >> .bashrc <<EOF alias rm=trash alias rl='ls ~/.trash' alias ur=undelfile undelfile() { mv -i ~/.trash/ \$@ ./ } trash() { mv\$@ ~/.trash/ } cleartrash() { read -p "clear sure?[n]" confirm [\$confirm == 'y' ] || [ \$confirm == 'Y' ] && /bin/rm -rf ~/.trash/* } EOF ========================= 实例: mkdir -p ~/.trash ----创建一个文件夹,用作垃圾桶。 将AIX下的rm命令改造成移动文件至回收站 mkdir -p /.trash #创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录 alias rm=trash #命令别名 rm改变为trash,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站 alias rl=’ls ~/.trash’ # rl 命令显示回收站中的文件 alias ur=undelfile # ur命令找回回收站中的文件 alias cleartrash=cleartrash #命名清楚垃圾桶中所有垃圾 把下面的脚本加入/etc/profile中: alias rm=trash alias rl='ls/.trash' aliasur=undelfile aliasrmcls=cleartrash trash() { mv $@ /.trash/ } undelfile() { mv -i /.trash/$@ ./ } cleartrash() { echo -n "clear sure?[n]" read I [ $I == 'y' ] || [ $I == 'Y' ] && /bin/rm -rf /.trash/* }
 

将linux下的rm命令改造成移动文件至回收站【转】的更多相关文章

  1. 将linux下的rm命令改造成移动文件至回收站

    将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有 ...

  2. 将linux下的rm命令改造成mv到指定的目录下

    rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单#rm -rf ./*这没什 ...

  3. linux下修改rm命令防止误删除

    前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. ...

  4. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  5. 【Linux下禁用rm命令之建立回收站】

    第一步 创建回收站目录 # 根据自己的习惯,找个位置创建一个用作回收文件的目录 # 我们这里将在root目录下面创建一个名为".trash"的隐藏文件 [root@fedora ~ ...

  6. 替换linux下的rm命令,并对-rf进行判断

    补充了对根目录,以及-r -rf -f的判断 1.使用root用户在/usr/local目录创建.rmov.sh #!/bin/shPARA_CNT=$#TRASH_DIR="/data01 ...

  7. linux下用split命令将一个大的文件拆分成若干小文件

    命令 split -l 50 wlan_date.txt wlan 说明:按50行给文件进行拆分,如果没有最后面的参数,命名将会是xaa,xab等.

  8. Linux下的split 命令(将一个大文件根据行数平均分成若干个小文件)

    将一个大文件分成若干个小文件方法 例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字形式 先利用 wc -l BLM.txt       读出 BL ...

  9. Linux下用jar命令更新jar包文件

    jar -uvf SDK_Web_ChartReport.war  view/global/header.jsp echo '样式文件替换进包中'   查看jar包中的文件: jar -tvf SDK ...

随机推荐

  1. Java8 新特性default

    在JDK1.8的Iterator接口中 package java.util; import java.util.function.Consumer; public interface Iterator ...

  2. Linux 创建用户和工作组

    创建用户 useradd user1                            #创建user1用户,创建user1用户同时会创建一个同名的工作组user1 passwd user1   ...

  3. 七参数计算正确性验证——Coord软件使用

    我计算了一套七参数,但是别人说计算结果不正确,我只好验证一下. 最后知道为啥算错了,原来是尺度K的单位问题,我计算七参数的单位是PPM,而下面软件的单位是m所以需要除以1000000进行计算. 下面是 ...

  4. static单利模式

    // //  main.m //  01-文件管理器 // //  Created by apple on 14-3-21. //  Copyright (c) 2014年 apple. All ri ...

  5. 使用NSURLSession请求需要AD认证的HTTPS服务器

    关键代码:使用后台下载PDF文件 - (void)startDownloadPDF{ NSURLSession *session = [self session]; NSString *downloa ...

  6. LuaExpat笔记

    xml xml是一种格式化数据交换语言, 适用于在网络上不同应用会话. http://www.xml.com/pub/a/98/10/guide0.html exPat 一种C语言实现的 xml 文档 ...

  7. UITextFiled

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  8. SqlServer:传递超长字符串参数时,参数被自动换行。

    declare @ids nvarchar(max); set @ids=N'5936593066,5936556893,59366 00375,5936594808,59 36624757,5936 ...

  9. Siverlight去掉ToolTip的白色边框

    control作为tooltip后,外框背景是白色的,并且有边框.  我们可以定义 一个样式去掉. <Style x:Key="ToolTipTransparentStyle" ...

  10. nginx字体文件配置

    http://www.doucode.com/nginx-support-font/ ====== nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { ...