查看原文
其他

实现Linux系统的回收站

The following article is from 秦露露 Author cnLinuxer


Linux系统默认没有回收站功能,使用rm命令进行删除操作,文件就会直接从系统中删除,很难恢复。

今天我们利用简单的shell脚本实现Linux系统下的回收站机制。


先提供脚本代码

[root@qll251 ~]# vim /bin/delete 1 #! /bin/bash 2 [ ! -d /.recycle ] && mkdir -v /.recycle && chmod 777 /.recycle 3 4 if [ $# -eq 0 ]; then 5 echo "Usage: delete file1 [file2 file3...]" && exit 6 6 fi 7 8 read -p "Are you sure you want to delete it? [Y/N]: " action 9 case $action in 10 y) ;; 11 Y) ;; 12 *) exit 13 esac 14 15 for file in $@; do 16 now=`date +%Y-%m-%d-%H:%M:%S` 17 newfile=`basename $file` 18 mv $file /.recycle/$newfile.$now && echo "$file is deleted!" 19 done


一、脚本解释

1)在/bin目录下创建脚本文件delete(方便系统用户直接调用delete命令)


2)首先判断回收站文件夹是否创建;如未创建,则创建/.recyscle;同时设置权限777

[ ! -d /.recycle ] && mkdir -v /.recycle && chmod 777 /.recycle


3)判断输入的文件个数是否为0;如果返回为真,则打印帮助信息,同时退出该脚本

if [ $# -eq 0 ]; then echo "Usage: delete file1 [file2 file3...]" && exit 6fi


4)设置用户交互,这里类似Windows的弹窗提醒

(将用户的输入,放入action变量)

read -p "Are you sure you want to delete it? [Y/N]: " action


5)理解为:若用户回答yes,继续执行脚本;否则直接退出程序

case $action in y) ;; Y) ;; *) exitesac


6) 将目标文件根据当前时间重命名,同时移动到/.recycle

命令解释:

  1. $@:传给脚本的所有参数(这里表示所有待删除的文件)

  2. basename:去掉路径信息,返回纯粹的文件名

for file in $@; do now=`date +%Y-%m-%d-%H:%M:%S` newfile=`basename $file` mv $file /.recycle/$newfile.$now && echo "$file is deleted!"done


二、设置脚本可执行权限

[root@qll251 ~]# chmod +x /bin/delete

三、定时清空回收站

执行crontab -e,设置每周执行清空回收站动作

0 0 * * 0 rm -rf /.recycle

四、进行测试


如果delete命令用着不习惯,我们也可以给rm配置别名。将rm命令替换为delete

以下是具体实现方法:

编辑~/.bashrc文件,增加一行

alias rm='sh /bin/delete'

执行source ~/.bashrc使替换立即生效





后台回复“加群”,带你进入高手如云交流群


推荐阅读:

Kubernetes排障指南

用漫画了解 Linux 内核到底长啥样

一份阿里员工排查程序问题的命令列表

云喝酒、云舞会、云睡觉...

图文:你女朋友也能看懂的Kubernetes

揭秘阿里、腾讯、字节跳动在家办公的区别

OpenStack常见的22个问题汇总

八个字节的 UDP 如何传输数据

如何入门分布式一致性协议与算法

调度系统设计精要

使Kubernetes更容易操作的11种工具

任何人都能看懂的 Kubernetes 教程!

一文读懂云计算

一文搞懂 Linux 的 inode



喜欢,就给我一个“在看”



10T 技术资源大放送!包括但不限于:云计算、虚拟化、微服务、大数据、网络、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公众号内回复「1024」,即可免费获取!!

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存