Linux rm命令重定义,防止误删

步骤:
1、在~/目录下新建隐藏脚本文件.rm_redefine
2、修改文件属性为可执行:chmod +x .rm_redefine
3、编写脚本内容.rm_redefine:

#!/bin/csh -f
#add 'alias rm      '~/.rm_redefine'          ' to ~/.cshrc
#add 'alias cleardt '~/.rm_redefine  -cleardt'' to ~/.cshrc

set dtpth=$PWD
set dtpth=`echo $dtpth | sed 's/\(\/[^\/]*\/[^\/]*\/[^\/]*\)\/.*/\1/g'`  #get 3 level dir
set dtpth="$dtpth/.dt"
set tmpdir=`date -u +%Y%m%d_%H_%M_%S`
set cleardt="NO"
set par=""
set delfiles=""
foreach tmpvar ($*)
	if ( "$tmpvar" =~ '-cleardt' ) then #if parameter is -cleardt,will do cleardt
		set cleardt="YES"
	else if ( "$tmpvar" =~ -* ) then #if parameter has -,will ignore this parameter
		set par="$par $tmpvar"
	else
		set delfiles="$delfiles $tmpvar" 
	endif
end
if ( "$cleardt" =~ "YES" ) then
	echo "cleardt"
	\rm -rf $dtpth/*
else
	if ( ! -d $dtpth ) mkdir $dtpth
	if ( ! -d $dtpth/$tmpdir ) mkdir $dtpth/$tmpdir
	mv $delfiles $dtpth/$tmpdir/
	echo "files moved to $dtpth/$tmpdir"
endif

4、在.cshrc中加入两行:

alias rm      '~/.rm_redefine'
alias cleardt '~/.rm_redefine -cleardt'

重新source一下.cshrc就可以用rm删除文件了:

rm aa bb cc dd e* ff* 

**附:**加bash shell脚本

#!/bin/bash
#add 'alias rm      '~/.rm_redefine'          ' to ~/.cshrc
#add 'alias cleardt '~/.rm_redefine  -cleardt'' to ~/.cshrc

dtpth=$PWD
dtpth=`echo $dtpth | sed 's/\(\/[^\/]*\/[^\/]*\)\/.*/\1/g'`  #get 3 level dir
dtpth="$dtpth/.dt"
tmpdir=`date -u +%Y%m%d_%H_%M_%S`
cleardt="NO"
par=""
delfiles=""
for tmpvar in $*
do
    if [ $tmpvar == '-cleardt' ] #if parameter is -cleardt,will do cleardt
    then
        cleardt="YES"
    elif [ ${tmpvar:0:1} == '-' ] #if parameter has -,will ignore this parameter
    then
        par="$par $tmpvar"
    else
        delfiles="$delfiles $tmpvar"
    fi
done
if [ $cleardt == "YES" ] 
then
	echo "cleardt"
	\rm -rf $dtpth/*
else
	if [ ! -d $dtpth ]
    then 
        mkdir $dtpth 
    fi
	if [ ! -d $dtpth/$tmpdir ]
    then 
		mkdir $dtpth/$tmpdir
	fi
	mv $delfiles $dtpth/$tmpdir/
	echo "files moved to $dtpth/$tmpdir"
fi

(如果帮助到你,点赞支持一下,3Q!)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值