Linux中头疼的rm命令,替换脚本rmrf

用命令行交互,经常使用rm -rf 删除目录和文件,用惯了,有时脑袋一抽,错删,造成不可恢复的痛苦。

用户往往在误删后第一时间知道自己操作失误,想紧急采取补救措施,但往往于事无补。保险删除是在选项中加i,再删除时一一确认。但这样做太麻烦,有没有方便点的工具呢?

所以开发一个替代工具或脚本,将使用人员要删除的文件先转换为隐藏文件,并设置自动处理,设置时间阀值,到时间后自动删除文件。

使用该工具或脚本后,打印产生的临时目录,自动清除的时间,自动删除的进程。用户可在自动清除前kill进程来结束删除操作,并进入临时目录恢复文件即可。

 

脚本名:rmrf

#! /bin/sh

AfterExeTime=10  #稍后执行删除时间长度(minutes)

 

function_use_rmrf() {

 

cat <<USE_RMRF

 

Usage: rmrf [OPTION] [FILE]...

To delete file/directory. When you use thiscommand. The file/directory

will be moved To a hide directory which namedby current time. After $AfterExeTime

minutes, this hide directory will bedeleted automated.Use this command

to delete file/directory will be nise.Whenyou find you are wrong to rm

this file/directory. You can kill the rmrfprogram PID during this times

and goto the hide tempdirectory To recoverthe file/directory.

 

[OPTION]:

-h

--h  Display the command rmrfusage

[FILE]:

The file/directory name. You can use wildcard character '*''?'.

 

USE_RMRF

}

 

# 产生暂存删除文件的隐藏目录名

function_currenttime_dirname() {

tempdir=.tempdir$(date -u +%Y%m%d%H%M%S)

mkdir $tempdir

}

 

if [ $# -eq 0 -o "$1" = "-h"-o "$1" = "--h" ] ;then

function_use_rmrf

exit 0

fi

 

# 判断位参表示的文件是否存在,有不存在的退出

ndmkdir=0 #用于判断本次删除操作是否已经是新建临时文件夹

 

for filedir in "$@"

do

if [ -f $filedir -o -d $filedir ] ;then

   if [ $ndmkdir -eq 0] ;then

       function_currenttime_dirname  #新建临时文件夹

       ndmkdir=1

   fi

   mv $filedir $tempdir

else

   echo "Not Exist orAlready deleted file/directory:  $filedir  "

fi

done

(  sleep $(expr $AfterExeTime \* 60) #睡眠时间(s)

    rm -rf$tempdir  )  &

 

echo "===> rmrfPID:  $!  "

echo "===> TempDirName:  $tempdir "

echo "===> AfterExeTime:  $AfterExeTime min(s)"

exit 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值