zoukankan      html  css  js  c++  java
  • Linux将rm命令设置为回收站【转】

    一个方案就是重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。

    实现方式如下:

    ### 重定义rm命令 ### 
     
    # 定义回收站目录 
    trash_path='~/.trash' 
     
    # 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path. 
    if [ ! -d $trash_path ]; then 
     mkdir -p $trash_path 
    fi 
     
    # 定义别名:使用 rm 就调用 trash 
    alias rm=trash 
     
    # 使用 rl 就调用 'ls ~/.trash' 
    # 如果更改上面的回收站目录这里的目录也需要修改 
    alias rl='ls ~/.trash' 
     
    # 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行 
    alias unrm=restorefile 
     
    # 使用 rmtrash 就调用 claearteash 
    alias rmtrash=cleartrash 
     
    # 恢复文件的函数 
    restorefile() 
    { 
     mv -i ~/.trash/$@ ./ 
    } 
     
    # 删除文件的函数 
    trash() 
    { 
     mv $@ ~/.trash/ 
    } 
     
    # 清空回收站的函数 
    cleartrash() 
    { 
     read -p "确定要清空回收站吗?[y/n]" confirm 
     [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* 
    } 

    最后将上述脚本写入 /etc/bashrc,并立即执行命令 source /etc/bashrc 即刻生效。

     

    这个脚本定义了几个命令:

    • rl:查看回收站下的文件。
    • unrm 文件名或目录:恢复到当前的路径下。
    • rmtrash:清空回收站,不过会友好提示。

    执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。实在真的想删除可以 /bin/rm 来进行删除。

    另外,需要注意的是,之前 rm 指令的一些参数可能不再使用,因为 rm 现在其实是 mv 了。

    使用示例:

    # touch hoxistest 
    # touch 1 
    # mkdir haha 
    # ls 
    1 haha hoxistest 
    # rm 1 
    # ls 
    haha hoxistest 
     
    # 查看回收站文件 
    # rl 
    1 myftp1 
     
    # 恢复已删除文件 
    # unrm 1 
    [root@CESHI-CLM-10-254-4-48 test]# ls 
    1 haha hoxistest 
     
    # rm haha/ 
    # rm hoxistest 
    # rl 
    haha hoxistest 
     
    # 情况回收站 
    # rmtrash 
    确定要清空回收站吗?[y/n]y 
    # rl 

    效果看着应该还可以吧。

     

    转自

    作为一名运维侠,如何潇洒的删库跑路? https://www.toutiao.com/a6604987457572176388/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1537847280&app=news_article&utm_source=mobile_qq&iid=26112390770&utm_medium=toutiao_ios&group_id=6604987457572176388

  • 相关阅读:
    (四)STL中的算法
    (三)openssl库实现对称和非对称加密
    (十一)etcd项目
    (十二)插件之dlopen/dlsym/dlclose 加载动态链接库
    (十一)访问权限关键字publi/private/protected
    RESTful架构
    (零)TCP/IP详解综述
    (二)辗转相除法求最大公约数
    (一)简单的TcpServer
    SpringMVC异常处理
  • 原文地址:https://www.cnblogs.com/paul8339/p/9722756.html
Copyright © 2011-2022 走看看