Shell脚本实现Linux回收站
前言
到目前为止,非图形化的Linux还没有回收站的命令。
那么,我们如果不小心将某一个文件删掉了,那就只能数据恢复了。如果这也不行,那就等着哭吧。
最新代码在我的github:https://github.com/GuoFlight/Mycode/blob/master/scripts/Linux回收站del.sh (欢迎Star)
实现回收站功能的Shell脚本
vim del #之所以后面没有.sh后缀,是为了让它更像一个命令。
#!/bin/bash
#################################################################
# 脚本作用: Linux的回收站
# 作者: 郭少
# 版本: v1.1
# 最近一次更新时间:2023-06-09
#################################################################
garbage_dir="$HOME/garbage"
set -e
#若文件不存在
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是测试文件
运行之后,你就会发现,在家目录下多了一个garbage的目录,里面包含了你删除的文件,而且文件名中还带有删除的日期。
- 除了删除文件之外,还可以删除目录。
- 可以指定相对路径,也可以指定绝对路径。
最后,喜欢的朋友欢迎Star _
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?