定制linux垃圾箱

需求

在linux或mac中有时使用rm命令会误删文件,导致恢复过程十分复杂。能否实现一个类似于垃圾箱功能用于暂存文件,然后恢复误删文件

参考资料

  1. ·Linux回收站功能的实现

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 修改rm 命令
alias rm=delete #命令别名,通过delete来实现rm改为mv
alias r=delete
alias rl='ls /home/onwaier/Documents/trash' #rl 命令显示回收站的内容
alias ur=undelfile #ul 命令找回回收站的文件
# 回收文件
undelfile()
{
if [ ! $# -eq 0 ]; then
mv /home/onwaier/Documents/trash/$@ ./
else
echo "请传入需撤销删除的文件名称,不清楚文件名称请用rl命令查看"
fi
}
# 将文件移至trash文件夹下
delete()
{
if [ ! -d "/home/onwaier/Documents/trash/" ]; then
mkdir /home/onwaier/Documents/trash
fi
\mv $@ /home/onwaier/Documents/trash/
}
# 清空回收站
cleartrash()
{
read "confirm?Are you sure?[YN]"
case $confirm in
Y y)
/bin/rm -rf /home/onwaier/Documents/trash/*;;
N n)
echo "exit";;
*)
echo "error choice";;

esac
}

说明

删除文件时,用rm filename1 finename2将会实现软删除,文件其实被移到你设置的特定路径下(如/home/onwaier/Documents/trash/),恢复时使用ur filename1,查看回收站的内容rl,清空回收站cleartransh