阅读内容

Ubuntu 8.04下一个替换rm的脚本

[日期:2008-08-13] 来源:Linux公社  作者:Linux编辑


Ubuntu 8.04版总是带给我许多麻烦,这次的LSV也不例外,每隔俩月scim-launcher就会在开机时不停的load,直至写满全部内存和swap挂掉为止。这次已经严重到快来不及run gnome-system-monitor了(gnome-terminal更不用提,更慢,来不及)。上次我就新建一用户yuanmm,login,把yuangg备份好,再把配置文件复制一份,登录进去调半天字体啥的。为防万一,我还把调好的配置文件tar -vczf p2.tar.gz /home/yuanmm/.[a-zA-Z]*了一把。果然用上了。

不过在反复的chown/mv/cp/rm中,不小心把一个花费不少时间收集的.*文件夹给删掉了。这已经是第二次了。上次是删*~时少打了~,谁说CL不容易出错来着?!关键是很难恢复……痛定思痛,我决定写一个脚本来替换rm。

以前觉得shell编程挺弱的,很难读,学高操的时候就没用心,都忘光了。结果昨晚熬夜,早晨迟到,才把以前学的shell编程大概扫了遍。也写出来和大家交流一下。dos下好像有del命令,所以我的脚本就以del为名,放在~/sbin下,再

chmod a+x ~/sbin/del,ln -s ~/sbin/* /usr/local/sbin就好了。

#!/bin/sh
if [ ! -d $HOME/.trash ]
then mkdir $HOME/.trash
fi
if [ $LOGNAME = "root" ]
# then delBy="$LOGNAME@$USERNAME"
# else delBy="$USERNAME"
then delBy=":$USERNAME"
fi

for toDel
do
backup=$HOME/.trash/`basename $toDel`$delBy
nsec=`date +%N`
#msec=${nsec:0:3}
if [ ! -f $backup -a ! -d $backup ]
then mv $toDel $backup
# else mv $toDel $backup:$msec
else
mv $toDel $backup:$nsec
touch -a $backup:$nsec
fi
done

不知道为何${nsec:0:3}不能正常运行,在命令行都可以的,这里`echo ${nsec:0:3}`也不行。于是只好放弃msec的时间戳。我希望最终版本能保留删除位置的信息(譬如移动tmp为~/.trash/tmp@home.yuangg:root@yuangg:616),将来再写个udel恢复删除的文件。不过子串要用到awk或sed,那就超出高操的范围了,等很闲的时候吧。




本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:

L
I
N
U
X


GOOGLE搜索
Google