今天偶然看到一个有意思的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

命令解释:

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

  2. 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系统的回收站相关推荐

  1. linux系统下回收站,linux系统中有回收站吗

    linux系统中有回收站吗 发布时间:2020-07-02 16:32:54 来源:亿速云 阅读:381 作者:Leah linux系统中有回收站吗?针对这个问题,这篇文章详细介绍了相对应的分析和解答 ...

  2. linux系统下回收站,Linux如何开启回收站功能

    Linux系统有回收站吗?答案是否定的,Linux系统并没有Windows中的回收站,但是Linux可以实现回收站的功能,具体要如何实现呢?下面小编就给大家介绍下Linux开启回收站功能的方法,一起来 ...

  3. linux服务器上的回收站,为linux系统实现回收站

    在linux系统中,经常采用"rm *"或"rm -r *"操作删除一下文件,但是有时某些文件并不是我们想要删除的,但是已经被删除.很多时候都是悲剧的,数据是难 ...

  4. linux系统下回收站,Linux/Unix回收站(trash)

    大家非常熟悉Windows系统的回收站,而Linux/Unix字符界面貌似没有类似的功能.个人觉得这功能是蛮实用的,是对系统误删的一种保护.有些资深的Unix爱好者觉得无需此功能,因为这样就可能不够& ...

  5. linux系统还原回收站,Trash-Cli:让你的Linux系统也有回收站

    Trash-Cli 号称 Linux 命令行中的回收站工具,使用它能够存储每一个垃圾文件的名字.原始路径.删除日期和权限,同时该款工具符合 FreeDesktop.org 规范.下面介绍 Trash- ...

  6. linux系统回收站功能的实现

    如何实现linux系统的回收站功能,对rm权限做限制,避免误删造成不可逆问题. 这就要靠环境变量去实现,首先需要了解环境变量的作用. /etc/profile,/etc/bashrc 是系统全局环境变 ...

  7. linux修改权限后不能开机,打造完美Linux系统:疑难杂症的解决(转)

    打造完美Linux系统:疑难杂症的解决(转)[@more@] 如果谁说他的Linux从来没有遇到"疑难杂症",我觉得是不可信的,就算是操作界面最友好的Window XP也时常遇到各 ...

  8. [转载]----linux系统工程师的前途在哪里?

    引言: 在alex的公开课上他说到在2011年的时候写过一遍关于linux系统工程师的前途在哪里?的文章,我在网上搜了一下,给找到以后拜读了一下,并在这里转载一下! 文章原地址: http://bbs ...

  9. linux写语句自动执行一次,Linux系统下自动执行指定任务 cron

    cron来源于希腊单词chronos(意为"时间"),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. ...

最新文章

  1. allow_unreachable flag
  2. 执行上下文(Exection Contexts)
  3. 四万字让你精通SQL数据库操作
  4. OpenCV3学习(2.3)——图像读取与鼠标截图
  5. Android ActionBar高级自定义——设置标题居中和添加控件
  6. github 思维导图开元软件_Windows上有哪些很棒思维导图的软件
  7. Java实验8 T2.编程包含一个文本框和一个文本区域
  8. 使用油猴插件,屏蔽网页上的禁止右键操作
  9. java 苹果支付(内购)
  10. 前端POST请求下载文件
  11. D盘目录或文件被损坏且无法读取怎么办
  12. 中英文常用标点符号统一清洗为英文格式
  13. 计算机组成存储单元地址分配,主存中存储单元地址的分配
  14. 教学打铃单片机实现(课程设计)
  15. CSS 实现父组件半透明,子组件不透明
  16. 从Java/Android到Swift iOS开发:语言与框架对比
  17. 简单到外行人都能看懂的“学生管理系统”
  18. Linux九阴真经之九阴白骨爪残卷1(加密和安全)
  19. 在线增加网站PV量单页源码
  20. (已更新)新独立系统社群空间站最新源码开源

热门文章

  1. android js调试
  2. VMware vCenter Converter 关闭SSL加密,提高35-40%性能
  3. 疯狂java学习笔记1023---线程的同步
  4. Java多线程同步Synchronized使用分析
  5. JRE和JDK 1.3、1.4、1.5(5.0)、6.0 各版本下载地址大全(J2SDK,JavaSE JavaEE)
  6. Something about WinCE6.0 R3
  7. java类加public和不加public
  8. Linux设备驱动模型3——platform平台总线工作原理
  9. Python第十七课(面向对象基础)
  10. 在Ubuntu下运行 apt-get update命令后出现错误: