Chinaunix首页 | 论坛 | 博客
  • 博客访问: 224582
  • 博文数量: 28
  • 博客积分: 398
  • 博客等级: 一等列兵
  • 技术积分: 1109
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-07 22:28
文章分类
文章存档

2017年(1)

2014年(3)

2013年(7)

2012年(4)

2011年(13)

分类: LINUX

2011-01-27 16:56:18

linux shell下, 如果没有看清当前所在目录,执行了rm *,后悔就晚了(虽然有extundelete,可以在磁盘上恢复,但前提是删除文件之后你在这个分区没有做任何写入操作。)。所以特写了个脚本,放到/usr/bin/下,命名为srm, 并赋予权限,chmod 777 /usr/bin/srm. 这样,我们在删除的时候使用 srm file_or_folder 代替 rm file_or_folder 删除的文件就会被移动到 ~/.Trash目录文件夹下(按照删除操作时的日期创建的文件夹 )

当然,srm并不是真正删除文件,只是把文件mv到了回收站中。所以需要定期或自动整理回收站。

 

脚本文件:/usr/bin/srm

 

#!/usr/bin/env bash

# 安全删除文件,先放到回收站(默认是 ~/.Trash)中。

# 注意:文件并没有真正删除,需要定期整理回收站中的文件

# date 2010-1-27

# author hby21c@163.com

 

input_count=$#

if (( input_count < '1' )); then

    echo "srm error commamd, Example: [ srm file_or_folder ]"

    exit 1

fi

 

# 创建主目录

target_folder="${HOME}/.Trash"

if [ ! -d $target_folder ]; then

    mkdir $target_folder

fi

 

# 创建当天的临时存放目录

cur_date=`date "+%Y-%m-%d"`

f_today=${target_folder}"/${cur_date}"

if [ ! -d $f_today ]; then

    mkdir $f_today

fi

 

# 生成移动后的文件名, 加上时间前缀,防止同名文件覆盖

cur_time=`date "+%H:%M:%S"`

if (( $input_count == 1 )); then

    tp=${f_today}"/${cur_time}_"${@##/*/}

else

    tp=${f_today}"/${cur_time}/"

    mkdir $tp

fi

 

# 移动文件

cmd=`mv -f $@ ${tp}`

 

#判断执行结果

if [ $? != "0" ]; then

    echo "srm fail, please try again"

    exit 1

fi

 

阅读(2245) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:suse在logout时,清空窗口的方法。

给主人留下些什么吧!~~