linux编写两个脚本实现安全删除和恢复命令

来源:互联网 发布:java插件下载 编辑:程序博客网 时间:2024/05/20 05:07

        在当前用户的家目录下创建一个隐藏文件夹".temp",它相当于Windows系统中的回收站。当用户想安全删除一个文件时,将要删除的文件剪切到该目录即可。如果要恢复,再将".temp"目录内的文件剪切到原始的位置。

        将删除文件的Shell脚本命名为erase,代码如下:

#! /bin/bash
RecycleBin=~/.temp

(($#==0))&&{ echo "No paraments!";exit 1;}

if [ ! -d $RecycleBin ];then
mkdir $RecycleBin
fi

for i in $*
do
    if test -e $i
           then
                cd $(dirname $i)
                mv -f $(basename $i) $RecycleBin/$(find $(pwd) -maxdepth 1 -name $(basename $i) | tr "/" "=")
                cd -
           else
           echo "$i:No such file or directory!"
     fi
done     


       将恢复文件的Shell脚本命名为unerase,代码如下:

#! /bin/bash
cd ~/.temp

list=$(for i in $*; do ls |grep "\<$i\>"; done)

(($#==0)) && { list=$(ls|grep ""); }

for j in $list
do
    file=$(echo $j | tr "=" "/")
    mv $j ${file%/*}/${file##*/}
done

     
保存这两个文件,并使用chmod a+x  为其添加可执行权限,然后将其复制到”/usr/loal/bin"目录下,之后就可以像使用rm来使用。要安全恢复某些文件,使用unerase加上要恢复的文件名即可,如果不加文件名,默认恢复“~/.temp"目录下的所有文件。如果先后删除两个同名的文件,那么在"~/.temp"文件夹中,之前的文件将会被覆盖。


0 0