linux替换rm命令为mv命令

linux替换rm命令为mv命令

一、目的

rm是Linux系统非常强大删除命令,但是使用rm命令删除文件后很难恢复。特别是对于将rm -rf ./误敲成rm -rf /,那可就欲哭无泪了。

为了给自己的操作留有余地,会使用mv命令来替换危险的rm命令。

二、步骤

实现命令替换的思想其实就是采用bash内置的alias命令进行命令别名设置。

2.1 代码演示

在家目录下的.bashrc文件的末尾添加如下命令:

trash(){
    TRASH=~/.trash ;
    if [ ! -d "$TRASH" ]; then
        echo "创建垃圾回收站目录";
        mkdir $TRASH ;
    fi

    str1=$@ ;
    str2=${str1##-* } ;
    mv $str2 ~/.trash/ ;
}

alias rm=trash

2.2 代码解释

首先定义了一个函数trash(),其实你可以把它当作一个命令来看待。在这个函数的内部,定义了变量T R A S H TRASHTRASH为垃圾回收的目录’~/.trash’,是一个隐藏目录。然后会判断指定目录是否存在,如果不存在,则会使用mkdir命令创建指定目录。

接下来,会对传递给trash函数的参数进行解析。由于rm命令可以接受-r、-f等参数,而我们最终只想把要删除的文件移动到指定的目录’~/.trash’,所以不需要解析rm命令后面的特殊参数。因此,使用特殊字符串处理。str1= @ 是 将 传 递 给 t r a s h 函 数 参 数 全 部 存 储 为 字 符 串 , @是将传递给trash函数参数全部存储为字符串, @trash{str1##-* }是截取字符串str1的最后一个特殊参数的右边的子串,也就是真正要处理的文件名。详细解释参见Bash Shell字符串操作小结。

最后就是调用mv命令将要处理的文件移动到指定的垃圾回收目录’~/.trash’。

2.3 代码生效

将上述代码添加到.bashrc文件结尾处后,记得保存。最后还有重要的一步,就是将.bashrc文件配置生效。运行下面的命令就可以了:

~$ source ~/.bashrc

三、总结

这个对于rm命令的替换基本可以满足日常使用了,但是也有缺陷,就是对于特殊的参数’-r、-f’等只是做了直接丢弃。但是目的已经达成了,我们使用rm命令时,如果发现误删了文件,就可以到指定目录恢复就好了。
————————————————
转自:https://blog.csdn.net/mucaoyx/article/details/95884095

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值