实现Linux系统的回收站
今天偶然看到一个有意思的shell脚本,用脚本实现Linux系统下的回收站,推荐给大家。
今天我们利用简单的shell脚本实现Linux系统下的回收站机制。
先提供脚本代码
[root@qll251 ~]# vim /bin/delete1 #! /bin/bash2 [ ! -d /.recycle ] && mkdir -v /.recycle && chmod 777 /.recycle34 if [ $# -eq 0 ]; then5 echo "Usage: delete file1 [file2 file3...]" && exit 66 fi78 read -p "Are you sure you want to delete it? [Y/N]: " action9 case $action in10 y) ;;11 Y) ;;12 *) exit13 esac1415 for file in $@; do16 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、脚本解释
1)在/bin
目录下创建脚本文件delete
(方便系统用户直接调用delete命令)
2)首先判断回收站文件夹是否创建;如未创建,则创建/.recyscle
;同时设置权限777
[ ! -d /.recycle ] && mkdir -v /.recycle && chmod 777 /.recycle
3)判断输入的文件个数是否为0;如果返回为真,则打印帮助信息,同时退出该脚本
if [ $# -eq 0 ]; thenecho "Usage: delete file1 [file2 file3...]" && exit 6
fi
4)设置用户交互,这里类似Windows的弹窗提醒
(将用户的输入,放入action
变量)
read -p "Are you sure you want to delete it? [Y/N]: " action
5)理解为:若用户回答yes,继续执行脚本;否则直接退出程序
case $action iny) ;;Y) ;;*) exit
esac
6) 将目标文件根据当前时间重命名,同时移动到/.recycle
命令解释:
$@:传给脚本的所有参数(这里表示所有待删除的文件)
basename:去掉路径信息,返回纯粹的文件名
for file in $@; donow=`date +%Y-%m-%d-%H:%M:%S`newfile=`basename $file`mv $file /.recycle/$newfile.$now && echo "$file is deleted!"
done
2、设置脚本可执行权限
[root@qll251 ~]# chmod +x /bin/delete
3、定时清空回收站
执行crontab -e
,设置每周执行清空回收站动作
0 0 * * 0 rm -rf /.recycle
4、进行测试
如果delete命令用着不习惯,我们也可以给rm配置别名。将rm命令替换为delete
以下是具体实现方法:
编辑~/.bashrc
文件,增加一行
alias rm='sh /bin/delete'
执行source ~/.bashrc
使替换立即生效
扫码或长按关注
回复「 篮球的大肚子」进入技术群聊
实现Linux系统的回收站相关推荐
- linux系统下回收站,linux系统中有回收站吗
linux系统中有回收站吗 发布时间:2020-07-02 16:32:54 来源:亿速云 阅读:381 作者:Leah linux系统中有回收站吗?针对这个问题,这篇文章详细介绍了相对应的分析和解答 ...
- linux系统下回收站,Linux如何开启回收站功能
Linux系统有回收站吗?答案是否定的,Linux系统并没有Windows中的回收站,但是Linux可以实现回收站的功能,具体要如何实现呢?下面小编就给大家介绍下Linux开启回收站功能的方法,一起来 ...
- linux服务器上的回收站,为linux系统实现回收站
在linux系统中,经常采用"rm *"或"rm -r *"操作删除一下文件,但是有时某些文件并不是我们想要删除的,但是已经被删除.很多时候都是悲剧的,数据是难 ...
- linux系统下回收站,Linux/Unix回收站(trash)
大家非常熟悉Windows系统的回收站,而Linux/Unix字符界面貌似没有类似的功能.个人觉得这功能是蛮实用的,是对系统误删的一种保护.有些资深的Unix爱好者觉得无需此功能,因为这样就可能不够& ...
- linux系统还原回收站,Trash-Cli:让你的Linux系统也有回收站
Trash-Cli 号称 Linux 命令行中的回收站工具,使用它能够存储每一个垃圾文件的名字.原始路径.删除日期和权限,同时该款工具符合 FreeDesktop.org 规范.下面介绍 Trash- ...
- linux系统回收站功能的实现
如何实现linux系统的回收站功能,对rm权限做限制,避免误删造成不可逆问题. 这就要靠环境变量去实现,首先需要了解环境变量的作用. /etc/profile,/etc/bashrc 是系统全局环境变 ...
- linux修改权限后不能开机,打造完美Linux系统:疑难杂症的解决(转)
打造完美Linux系统:疑难杂症的解决(转)[@more@] 如果谁说他的Linux从来没有遇到"疑难杂症",我觉得是不可信的,就算是操作界面最友好的Window XP也时常遇到各 ...
- [转载]----linux系统工程师的前途在哪里?
引言: 在alex的公开课上他说到在2011年的时候写过一遍关于linux系统工程师的前途在哪里?的文章,我在网上搜了一下,给找到以后拜读了一下,并在这里转载一下! 文章原地址: http://bbs ...
- linux写语句自动执行一次,Linux系统下自动执行指定任务 cron
cron来源于希腊单词chronos(意为"时间"),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. ...
最新文章
- allow_unreachable flag
- 执行上下文(Exection Contexts)
- 四万字让你精通SQL数据库操作
- OpenCV3学习(2.3)——图像读取与鼠标截图
- Android ActionBar高级自定义——设置标题居中和添加控件
- github 思维导图开元软件_Windows上有哪些很棒思维导图的软件
- Java实验8 T2.编程包含一个文本框和一个文本区域
- 使用油猴插件,屏蔽网页上的禁止右键操作
- java 苹果支付(内购)
- 前端POST请求下载文件
- D盘目录或文件被损坏且无法读取怎么办
- 中英文常用标点符号统一清洗为英文格式
- 计算机组成存储单元地址分配,主存中存储单元地址的分配
- 教学打铃单片机实现(课程设计)
- CSS 实现父组件半透明,子组件不透明
- 从Java/Android到Swift iOS开发:语言与框架对比
- 简单到外行人都能看懂的“学生管理系统”
- Linux九阴真经之九阴白骨爪残卷1(加密和安全)
- 在线增加网站PV量单页源码
- (已更新)新独立系统社群空间站最新源码开源
热门文章
- android js调试
- VMware vCenter Converter 关闭SSL加密,提高35-40%性能
- 疯狂java学习笔记1023---线程的同步
- Java多线程同步Synchronized使用分析
- JRE和JDK 1.3、1.4、1.5(5.0)、6.0 各版本下载地址大全(J2SDK,JavaSE JavaEE)
- Something about WinCE6.0 R3
- java类加public和不加public
- Linux设备驱动模型3——platform平台总线工作原理
- Python第十七课(面向对象基础)
- 在Ubuntu下运行 apt-get update命令后出现错误: