Linux防误删配置、shell脚本替换原rm命令

1. 引言

相信大部分IC方向的EDA软件都在linux系统上部署,这在方便license部署和多用户管理的同时,难免会为了强大的rm命令而头疼。要么禁用rm命令,要么大胆使用。但大家难免有眼花、手乱的时候,将一些重要文件删掉了。此时只能进行文件恢复了,还不一定能恢复成功。头疼,脑壳儿疼,但…,有一个更好的方法,就是想Win一样建一个回收站,删除的文件先放入回收站中。

2. 脚本

废话不多说,直接上脚本

#!/bin/sh
RUBBISH=~/.rubbish
MAXSIZE=10  # G
cmd=$1
if [[ ! -d $RUBBISH ]]; then
        mkdir $RUBBISH
fi
if [[ $1 != '-super' ]]; then
        if [[ ${cmd:0:1} != "-" ]] && [[ $cmd != "" ]]; then
                for i in "$@"
                do
                        # cut "/" by the end of directory
                        CUT_NAME=${i/%$"/"/""}
                        # rename file or directory
                        FILENAME=$CUT_NAME-`date +"%Y%m%d-%H%M%S"`
                        # mv $CUT_NAME $FILENAME
                        if [[ -d "$CUT_NAME" ]]; then
                                #tar -cf "$FILENAME.tar" "$CUT_NAME"
                                mv $CUT_NAME  $RUBBISH/$FILENAME
                        else
                                mv $CUT_NAME  $RUBBISH/$FILENAME
                        fi
                done
                echo "RM: Moved to rubbish."
        elif [[ ${cmd:0:1} == "-" ]]; then
                echo "CMD_ERROR:rm $1"
                echo "CMD:rm <Dir/File>"
        fi
else
        for i in "$@"
        do
                if [[ ${i:0:1} != "-" ]]; then
                        CUT_NAME=${i/%$"/"/""}
                        /bin/rm -rf $CUT_NAME
                fi
        done
        echo "RM: Super Deleted Completed."
fi
rubbishSize=$(echo du -s $RUBBISH/ | awk '{print int($1/1024/1024)}')
if [ $rubbishSize -gt $MAXSIZE ]; then
        echo "RM: The Size of rubbish is $rubbishSize G."
        echo "RM: The rubbish can been cleaned up with 'RubbishClean'."
fi

能看懂的大佬直接跳过一下部分:
简单说一下,

  1. RUBBISH是回收站的目录,目前的设置为当前用户根目录中的一个隐藏目录rubbish。
  2. MAXSIZE 为回收站警告提醒的最大容量,单位为G,当前设置为回收站超过10G,提醒清空回收站。
  3. 删除的文件/文件夹会被移入~/.rubbish中,并且名字后添加删除时间。
  4. 可以使用rm -super <Dir/File> 强力删除文件或文件夹,而不移入回收站。

3. 配置

需要配置脚本,以及rm命令的重定义,并添加清空回收站命令。
首先将上述脚本命名为myrm.sh,并放在一个心怡的位置,比如/root/myrm.sh。
全局配置:
打开/etc/profile文件,进行如下配置,不要忘了sudo权限

# 打开 /etc/profile
sudo vim /etc/profile
# 在文件中添加如下内容
alias rm="/root/myrm.sh"
alias RubbishClean="/bin/rm -rf ~/.rubbish/*;echo 'The rubbish has been cleaned up.'"

终端重启生效。
用户配置:
打开~/.bashrc文件,进行如下配置

# 打开 ~/.bashrc
sudo vim ~/.bashrc
# 在文件中添加如下内容
alias rm="/root/myrm.sh"
alias RubbishClean="/bin/rm -rf ~/.rubbish/*;echo 'The rubbish has been cleaned up.'"

删除命令:rm <Dir/File>
恢复就不用了说了,用mv命令就可以恢复了
清空回收站命令:RubbishClean

4. 结语

良心脚本,希望大家都不需要再重复工作,即使手抖误删,也能反悔。
好用了点个赞,收个藏,耶~~

参考博客:
https://blog.csdn.net/k331922164/article/details/51793887

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值