前言

到目前为止,非图形化的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. [FE] Quasar BEX 预览版指南

    BEX(Browser Extension)是 Quasar 基于同一套代码允许编译成浏览器扩展来运行,支持 Firefox & Chrome. 截止目前(2019/12/25), bex 模 ...

  2. 修复 Debian 安装 dotnet 失败 depends on ca-certificates

    本文记录我在 Debian 安装 dotnet 失败,报错信息是 packages-microsoft-prod depends on ca-certificates; however: Packag ...

  3. Roslyn 将构建时间写入到输出文件

    我期望在每次构建完成之后,创建一个文件,在这个文件里面写入是什么时间构建的.这个需求实现非常简单,只需要使用 Target 在构建完成,使用 WriteLinesToFile 方法写入时间到输出文件即 ...

  4. WPF 简单聊聊如何使用 DrawGlyphRun 绘制文本

    在 WPF 里面,提供的使用底层的方法绘制文本是通过 DrawGlyphRun 的方式,此方法适合用在需要对文本进行精细控制的定制化控件上.此方法特别底层而让调用方法比较复杂,本文告诉大家一些简单的使 ...

  5. Microsoft SQL Server 自定义函数整理大全

    https://www.cnblogs.com/ybb521/p/3210271.html

  6. k8s控制节点etcd删除并重新加入

    官方参考:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd/ 1.删除etcd节点 cd ...

  7. async 与 promise 的区别

    async函数会引式返回一个promise,而promise的resolve值就是函数return的值 使用async和await明显节约了不少代码,不需要.then,不需要写匿名函数处理promis ...

  8. 路由跳转报错:Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated",...

    记录一个路由跳转的报错: 将换成

  9. 一个现代化轻量级的跨平台Redis桌面客户端

    大家好,我是 Java陈序员. Redis 作为一款高性能的非关系型数据库,可是深受开发者的喜爱,无论是什么开发,都能看到 Redis 的身影. 今天,给大家介绍一款跨平台的 Redis 客户端连接工 ...

  10. InternLM2 Demo实操-书生浦语大模型实战营第二期第2节作业&大语言模型3

    大语言模型-3.InternLM2 Demo实操 书生浦语大模型实战营第二期第二节作业 本文包括第二期实战营的第2课作业的相关内容.本来是想在学习笔记中给InetrnLM官方教程做做补充的,没想到官方 ...