避免rm的巨大伤害,使删除的东西在回收站

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免rm的巨大伤害,使删除的东西在回收站相关的知识,希望对你有一定的参考价值。

1.原因:

    今天测试时不小心把家目录里的好多东西删掉了,辛亏有备份,写好的好多脚本才没有丢

    本来定义的有别名 

    alias rm="mv -t /app/tmp"        
       -t :调换 源 和 目的 的参数位置

     可是在脚本里执行的rm 不支持别名,就删错了

2.思路:

    1. 写一个脚本,名字是 rm ,把路径放在PATH的最前面

            把 /app/tmp 当作是回收站

    2. 删除 alias rm=“rm -i”


3.过程

      1. 脚本

#!/bin/bash
# ------------------------------------------
# Filename: rm   
# Date:    2017-09-15    
# Revision:   
# Author: 木子甘
# stdentID:16    
# Description: 避免rm的巨大伤害,使删除的东西在回收站 
# ------------------------------------------
#检查有没有参数
f_args (){
        [ $# -eq 0 ] &&{ echo "missing operand" ; return 1; } || return 0 
}
#检查文件是否存在
f_arg (){
        [ -e $1 ] ||{ echo "cannot remove ‘b.sh’: No such file or directory"; return 1; }
}
#mv
f_rm (){
        mv -t /app/tmp $1
}
#主程序
f_args [email protected] 
[ $? -ne 0 ] &&exit 1
while [ $# -ne 0 ] ; do
        f_arg $1 
        [ $? -ne 0 ] &&{ shift; continue; }
        f_rm $1
        [ $? -ne 0 ] &&{ shift; continue; }
        shift
done



    2.    修改PATH变量

        在/etc/profile.d/newvar.sh 里面写上

            PATH=$HOME/bin:$PATH


4.测试

    1.

[[email protected] ~/bin]# vim test.sh
#!/bin/bash
which rm
bash -x rm /app/tmp/a.sh


          结果是:技术分享


    2.命令行测试

[[email protected] ~/bin]# which rm
/root/bin/rm


成功!!!


















本文出自 “12410412” 博客,转载请与作者联系!

以上是关于避免rm的巨大伤害,使删除的东西在回收站的主要内容,如果未能解决你的问题,请参考以下文章

alias用法示例

如何使 FAB 避免在 ViewPager 中移动,但又是其中的片段的一部分?

更安全的rm命令,保护重要数据

linux创建自定义回收站

在centos 下 设计“安全”的delete命令替代rm。

来自另一个片段的 Snackbar 回调