shell实现的windows回收站功能的脚本.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:132KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

shell实现的windows回收站功能的脚本.pdf

shell实现的windows回收站功能的脚本.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

file:///home/aaron/nfs/20130816/trash.sh.html:<<EOFtrash命令替代linuxrm命令实现windows回收站的功能一.功能简介1.将删除的文件放在回收站中2.恢复删除的文件3.实现linuxrm命令的功能,使用起来几乎和linux系统自带的rm,命令完全一样4.新增功能:rm-l,rm-e,rm-c5.该脚本每次在运行时候会检查$HOME/.trash目录下文件大小之和,若超过最大容量,脚本会自动将日志文件中所记录文件中的前一半文件从回收站中清除,所以建议删除大文件(相对于回收站最大容量而言)直接用命令/bin/rm而不要用rm.二.使用方法:1.将trash文件放到$HOME/bin/2.在$HOME/.bashrc文件中加入aliasrm=”$HOME/bin/trash”,重新登陆终端或执行bash命令。3.执行命令rm-e配置回收站的最大容量,单位K4.回收站的默认目录为:$HOME/.trash,默认配置文件为:$HOME/.trash/trash.conf默认log文件为:$HOME/.trash/trash.log5.怎样恢复文件:在linux终端中输入rm-l,然后在RowNumber:后面键入要删除文件所在的行标识:988键入y/Y然后按回车键恢复成功.如果想只查看删除列表,则键入rm-l后直接按回车键或者键入Q/q6.更详细的参数介绍请键入:rm--help三.注意事项1.想要手动清空$HOME/.trash目录需要用/bin/rm命令,请不要尝试用rm-r$HOME/.trash的方法.2.该脚本不支持rm-r-f,rm-rfi(选项组合超过2个)格式.3.如果你可以你甚至可以用该脚本作为备份脚本,假若想备份test2.txt你只需要执行rmtest2.txt,当然如果真想备份某个文件的话,最好编写专门的备份脚本。EOF=======================CODE========================#!/bin/bash#配置回收站最大的存储空间(字节)#maxmemory=51200(50M)#maxmemory=102400(100M)#maxmemory=512000(500M)#根据情况设置为50M(对于isoa服务开发来说足够了)maxmemory=204800#设置回收站所在的目录trash=$HOME/.trash#设置日志文件所在的目录mvlog=$trash/trash.logfrom1=$1from2=$2var_pwd=var_father=#回收站若不存在,则新建之if[!-e$trash];thenmkdir-p$trashchmod755$trashfi#产生7位的随机数functionrand(){a=(0123456789abcdeABCDEF)for((i=0;i<7;i++))doecho-n${a[$RANDOM%${#a[*]}]}done}random=$(rand)#文件不存在时的提示信息functionfile_null(){localfile=$1echo"rm:cannotremove'$file':Nosuchfileordirectory"1of608/16/201301:25PMfile:///home/aaron/nfs/20130816/trash.sh.html}#打印参数出错后的提示信息functionecho_msg(){echo-n"rm:missingoperandTry'rm--help'formoreinformation."}functionecho_msg2(){echo-n"rm:invalidoption'$1'Try'rm--help'formoreinformation."}#回收站管理函数functiondeal(){localtmp=$(mktemp/tmp/tfile.XXXXXX)localnum=$(($(cat$mvlog|wc-l)/2))#awk-F:-vnu=$num-vtrash=$trash'{if(NR<=nu)system("rm-rf"trash"'/'"$2"':'"$3"");\#elseprint$0}'$mvlog|sort-o$mvlogawk-F:-vnu=$num-vtrash=$trash'{if(NR<=nu)system("rm-rf"trash"'/'"$2"':'"$3"");\else