用命令行交互,经常使用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.
--h& Display the command rmrfusage
The file/directory name. You can use wildcard character '*''?'.
# 产生暂存删除文件的隐藏目录名
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
# 判断位参表示的文件是否存在,有不存在的退出
ndmkdir=0用于判断本次删除操作是否已经是新建临时文件夹
for filedir in &$@&
if [ -f $filedir -o -d $filedir ] ;then
&& if [ $ndmkdir -eq 0] ;then
&&&&&& function_currenttime_dirname& #新建临时文件夹
&& &&&&ndmkdir=1
&& mv $filedir $tempdir
&& echo &Not Exist orAlready deleted file/directory:&&$filedir& &
(&&sleep $(expr $AfterExeTime \* 60)睡眠时间(s)
& &&rm -rf$tempdir& )& &
echo &===& rmrfPID:& $!& &
echo &===& TempDirName:& $tempdir &
echo &===& AfterExeTime:& $AfterExeTime min(s)&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:321次
排名:千里之外新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
家境小康, 积分 1306, 距离下一级还需 694 积分
论坛徽章:0
问个问题, \rm 与rm在shell脚本中有什么区别
最近在看人家的脚本时碰到的,
是个cs***件。
不过查不到相关的说明。
那位大侠指点一下。
& |& & |& & |& & |& 
论坛徽章:104
如果rm被定义了别名,第一个写法可以忽略别名。
家境小康, 积分 1483, 距离下一级还需 517 积分
论坛徽章:0
顶楼上的,学习了~
家境小康, 积分 1306, 距离下一级还需 694 积分
论坛徽章:0
一言胜读十年书。