前言

到目前为止,非图形化的Linux还没有回收站的命令。

那么,我们如果不小心将某一个文件删掉了,那就只能数据恢复了。如果这也不行,那就等着哭吧。

最新代码在我的github:https://github.com/GuoFlight/Mycode/blob/master/scripts/Linux回收站del.sh (欢迎Star)

实现回收站功能的Shell脚本

  1. vim del #之所以后面没有.sh后缀,是为了让它更像一个命令。
  1. #!/bin/bash
  2. #################################################################
  3. # 脚本作用: Linux的回收站
  4. # 作者: 郭少
  5. # 版本: v1.1
  6. # 最近一次更新时间:2023-06-09
  7. #################################################################
  8. garbage_dir="$HOME/garbage"
  9. set -e
  10. #若文件不存在
  11. if [ ! -e $1 ]; then
  12. echo "删除失败 '$1': No such file or directory"
  13. exit 1
  14. fi
  15. get_new_filename(){
  16. #文件名与删除时间的分隔符
  17. sep_char="_"
  18. #分离出文件名
  19. old_filename=`echo "$1" | awk -F/ '{print $NF}'`
  20. len_old_filename=${#old_filename}
  21. let temp=len_old_filename-1
  22. #若参数为目录,则去除最后的/
  23. if [ ${old_filename:temp} = "/" ]; then
  24. old_filename=${old_filename:0:$temp}
  25. fi
  26. #得到新文件名
  27. cur_time=`date "+%Y%m%d%H%M%S"`
  28. new_filename="$old_filename$sep_char$cur_time"
  29. echo $new_filename
  30. return 0
  31. }
  32. #创建垃圾桶
  33. mkdir -p $garbage_dir
  34. new_filename=`get_new_filename $1`
  35. mv $1 $garbage_dir/$new_filename
  1. chmod +x del
  2. mv del /usr/local/bin

如何使用?

  1. del 123.txt #123.txt是测试文件

运行之后,你就会发现,在家目录下多了一个garbage的目录,里面包含了你删除的文件,而且文件名中还带有删除的日期。

  • 除了删除文件之外,还可以删除目录。
  • 可以指定相对路径,也可以指定绝对路径。

最后,喜欢的朋友欢迎Star _

Shell脚本实现Linux回收站的更多相关文章

  1. shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)

    shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...

  2. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  3. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  4. Shell脚本对Linux进行文件校验

    Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一 ...

  5. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  6. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

  7. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

  8. 使用 Shell 脚本自动化 Linux 系统维护任务

    如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确.一个高效的系统管理员应该制定一个计划使得其尽量花费少的时间去做重复的工作.因此尽管看起来他没有做很多的工作,但那 ...

  9. 使用 shell 脚本对 Linux 系统和进程资源进行监控

    Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...

  10. shell脚本监控Linux系统性能指标

    2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...

随机推荐

  1. dotnet 使用 CsWin32 库简化 Win32 函数调用逻辑

    很多开发者,包括开发老司机们,在碰到需要调用 Win32 函数时,都有一个困扰,那就是我应该如何去调用.有两个主要的选项,第一就是自己写 PInvoke 代码,第二就是使用其他大佬给许多 Win32 ...

  2. containerd基本使用命令

    一.containerd简介 官 方 文 档 : https://containerd.io 在 2016 年 12 月 14 日,Docker 公司宣布将containerd 从 Docker 中分 ...

  3. golang 常用操作

    golang 获取切片 slice 第一个 最后一个 元素 复合数据类型切片通常用作Go中索引数据的口语结构. 该类型[]intSlice是具有类型为integer的元素的切片. len函数用于获取切 ...

  4. supervisor 的安装与使用

    学习视频: https://www.bilibili.com/video/BV1Vi4y147Fm?from=search&seid=8875783979034550201 更多说明: htt ...

  5. 记录——Qt Qcreator 顶部菜单栏的隐藏与恢复

    问题 我有一个朋友(嗯~无中生友),手残点击了 QCreator 中视图下的这个玩意儿: 当人的眼神不好时,可能不会看到这些快捷键以及无视这些弹窗. 解决方案 快捷键 ctrl + alt + M 可 ...

  6. vue特殊atribute-is

    1.解决dom内模板限制 有些 HTML 元素,诸如 <ul>.<ol>.<table> 和 <select>,对于哪些元素可以出现在其内部是有严格限制 ...

  7. LLM实战:LLM微调加速神器-Unsloth + Qwen1.5

    1. 背景 上一篇介绍了基于训练加速框架Unsloth,微调训练Llama3的显卡资源占用及训练时间对比. 近期Unsloth新增了Qwen1.5的模型适配,因此本qiang~马不停蹄地又进行了一次实 ...

  8. Avalonia中的线性渐变画刷LinearGradientBrush

    在WPF中使用Shape实现复杂线条动画后,尝试在Avalonia中也实现同样效果.尽管官方提供了从WPF到Avalonia的快速入门文档,但由于第一次使用Avalonia,体验过程中并不是很顺利,主 ...

  9. JS 监听用户页面访问&页面关闭并进行数据上报操作

    JS 监听用户页面访问&页面关闭操作并进行数据上报 前言 最近在做安全方面的项目,有个需求是在用户访问页面和关闭页面的时候,发送对应的数据. 刚拿到需求的时候,觉得没啥东西,init 的时候发 ...

  10. 【U8】 生产订单下bom 提示 “遇到以0做除数错误”错误

    一个虚拟件子件的子件为无换算率存货,bom中对应的换算率.辅助基本用量为0,修改为null后正常. 对应 bom_opcomponent表的 ChangeRate 换算率 AuxBaseQtyN 辅助 ...