Shell脚本实现Linux回收站

前言

到目前为止,非图形化的Linux还没有回收站的命令。
那么,我们如果不小心将某一个文件删掉了,那就只能数据恢复了。如果这也不行,那就等着哭吧。
如果你是妹子,那我这儿有肩膀。

实现回收站功能的Shell脚本

vim del		#之所以后面没有.sh后缀,是为了让它更像一个命令。
#!/bin/bash
#脚本作用:Linux的回收站
#作者:郭老师
#blog: https://blog.csdn.net/NetRookieX

garbage_dir="/root/garbage"

#若文件不存在
if [ ! -e $1 ]; then
	echo "删除失败 ‘$1’: No such file or directory"
	exit 1
fi

get_new_filename(){
    #文件名与删除时间的分隔符
    sep_char="_"

    
	#分离出文件名
    old_filename=`echo "$1" | awk -F/ '{print $NF}'`

    len_old_filename=${#old_filename} 
    let temp=len_old_filename-1

    #若参数为目录,则去除最后的/ 
    if [ ${old_filename:temp} = "/" ]; then
        old_filename=${old_filename:0:$temp}
    fi  

    #得到新文件名
    cur_time=`date "+%Y%m%d%H%M%S"`
    new_filename="$old_filename$sep_char$cur_time"
        
    echo $new_filename
    return 0
}

#创建垃圾桶
mkdir -p $garbage_dir

new_filename=`get_new_filename $1`

mv $1 $garbage_dir/$new_filename
chmod +x del
mv del /usr/local/bin

如何使用?

del 123.txt		#123.txt是测试文件

运行之后,你就会发现,在/root/目录下多了一个garbage的目录,里面包含了你删除的文件,而且文件名中还带有删除的日期。

  • 除了删除文件之外,还可以删除目录。
  • 可以指定相对路径,也可以指定绝对路径。
  • 如果非root用户没有权限,记得在脚本中修改garbage目录的路径。

最后

喜欢的朋友给点支持吧^_^


发布了99 篇原创文章 · 获赞 44 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/NetRookieX/article/details/101166615