前言

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

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

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

实现回收站功能的Shell脚本

vim del		#之所以后面没有.sh后缀,是为了让它更像一个命令。
#!/bin/bash

#################################################################
# 脚本作用: Linux的回收站
# 作者: 郭少
# 版本: v1.1
# 最近一次更新时间:2023-06-09
################################################################# garbage_dir="$HOME/garbage" set -e #若文件不存在
if [ ! -e $1 ]; then
echo "删除失败 '$1': No such file or directory"
exit 1
fi get_new_filename(){
#文件名与删除时间的分隔符
sep_char="_" #分离出文件名
old_filename=`echo "$1" | awk -F/ '{print $NF}'` len_old_filename=${#old_filename}
let temp=len_old_filename-1 #若参数为目录,则去除最后的/
if [ ${old_filename:temp} = "/" ]; then
old_filename=${old_filename:0:$temp}
fi #得到新文件名
cur_time=`date "+%Y%m%d%H%M%S"`
new_filename="$old_filename$sep_char$cur_time" echo $new_filename
return 0
} #创建垃圾桶
mkdir -p $garbage_dir new_filename=`get_new_filename $1` mv $1 $garbage_dir/$new_filename
chmod +x del
mv del /usr/local/bin

如何使用?

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. 超级好用的 IEC104 主站/客户端模拟器

    目录 超级好用的 IEC104 主站/客户端模拟器 主要功能 软件截图 超级好用的 IEC104 主站/客户端模拟器 官网下载地址:http://www.redisant.cn/iec104clien ...

  2. C# - 自建 SDK 的 API 文档

    在代码中添加 API 文档 用户在使用类库时,通常需要通过 VS 的 Intellisense 或 F12 反编译查看 API 的注释,借助这些注释来了解如何使用 API.在 C# 源文件中,可以通过 ...

  3. OSI模型之网络层

    一.简介 网络层是OSI参考模型中的第三层,同时也是TCP/IP模型的第二层.它介于传输层和数据链路层之间,主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据 ...

  4. Solution Set - NOI真题

    NOI2024 RP++! NOI2018 Day1T1 Link&Submission. 考虑一个最高的水位线使所有点通过没有积水的边就可以连通,也就是求出了一棵海拔的最大生成树.会发现只有 ...

  5. 01 redis 基础入门

    目录 介绍 特点 redis与memcache比较 适用场景 redis 核心配置说明 Redis 对key的通用操作命令 字符串 Hash类型 课程学习地址: https://www.bilibil ...

  6. iceoryx源码阅读(八)——IPC通信机制

    目录 1 整体结构 2 序列化与反序列化 3 类Unix系统的实现 3.1 发送函数send 3.2 接收函数receive 4 Windows系统的实现 4.1 发送函数send 4.2 接收函数r ...

  7. leaflet 用自定义pane实现图层顺序调整

    在 Leaflet 中,map panes 隐式地将图层组合在一起,而开发者并不知道这一点.这种分组允许 Web 浏览器以比单独处理图层更有效的方式同时处理多个图层. Map panes 使用 z-i ...

  8. VNC 远程桌面很卡,替代方案如下

    VNC 远程桌面是一款古老的远程桌面软件,是基于 Unix 和 Linux 操作系统的免费的开源软件.免费开源很好,但是 VNC 也存在一些缺点. 1.VNC 远程桌面很卡 想白嫖 VNC,就要接受卡 ...

  9. CMD文件内容统计程序简单版本

    WordCount命令行程序通过CMD接收参数,输出统计结果到指定文件. 项目码云地址:https://gitee.com/ggtc/WordCount.git 实现的功能有: 统计文件字符数 1 u ...

  10. MySQL如何查询某个字段含有字母数字的值

    在MySQL中,要查询某个字段含有字母和数字的值,可以使用正则表达式配合REGEXP操作符.以下是一个详细的示例,说明如何编写这样的查询. 假设我们有一个名为my_table的表,其中有一个名为my_ ...