Linux命令行实现回收站功能

使用rm命令需要格外小心,因为一旦删除,就无法恢复
为了防止误删,我们可以手动创建一个回收站

1.创建回收站文件夹

1
mkdir /home/username/.trash

2.重写rm命令

1
2
3
4
5
6
7
8
9
10
vi ~/remove.sh
# 写入
PARA_CNT=$# # $#:传给脚本的参数个数
TRASH_DIR="/home/username/.trash"
for i in $*; # $*:以一个单字符串显示所有向脚本传递的参数
do
STAMP=`date +%s`
fileName=`basename $i` # basename $i:删除文件目录,只留文件名称
mv $i $TRASH_DIR/$fileName.$STAMP
done
1
2
# 赋予remove.sh可执行权限
chmod +x remove.sh

3.在bashrc中重写rm命令

1
2
3
vi ~/.bashrc
#写入
alias rm="sh /home/username/remove.sh"
1
2
# 使生效
source ~/.bashrc

4.每天定时清理回收站

1
2
3
crontab -e  # 编辑定时任务
# 写入
0 0 * * * rm -rf /home/username/.trash/* # 每天0点清空回收站
1
2
# 查看定时任务
crontab -l