“你的rm -rf /*,我接盘了“——刚毕业的运维小姐姐总误删文件,我送了她一个命令行版 “回收站”

2023-10-31 23:59

本文主要是介绍“你的rm -rf /*,我接盘了“——刚毕业的运维小姐姐总误删文件,我送了她一个命令行版 “回收站”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

事情是这样的

Linux命令行实现回收站功能

1、创建回收站文件夹

2、重新一下rm命令

3、重写rm完整脚本

4、立即生效

5、测试删除

6、回收站定期删除

7、真实删除命令在哪呢?

送给运维小姐姐的回收站


事情是这样的

运维组新来了的一个小姐姐,在服务器上玩命令行,误删了一个重要的配置文件。

本来是件挺严重的事,但她泪眼汪汪的看着我,真的不忍心责怪

只能硬着头皮,翻文档 七拼八凑一下午 才把文件内容找回来

不能让她在服务器上过于奔放,只能找个方法限制她。

Linux命令行实现回收站功能

rm -rf 是一个极其危险的操作,而且Linux端不像windows,有回收站的的后悔药可以吃。

所以一旦误操作,就有可能造成不可挽回的后果。

1、创建回收站文件夹

创建一个路径来作为我们的回收站:cd ~ && mkdir .trash 
#/root/.trash路径,即作为我们的回收站路径

当然,这里要注意你分区空间的情况,这个回收站位置,生产环境尽量放在空间较大的分区下。

如果,只是自己玩玩,可以随便放。

2、重新一下rm命令

在.bashrc中重写删除命令的代码

赋予最高权限:chmod 777 .trash修改你的 home 目录下的:.bashrc:vim ~/.bashrc

3、重写rm完整脚本

完整脚本链接:

https://download.csdn.net/download/weixin_42350212/19871405

4、立即生效

source ~/.bashrc#使配置文件立即生效,最后 我们来做一下测试

5、测试删除

#创建测试文件
[root@mail ~]# touch test.txt
#使用rm -rf 删除该文件
[root@mail ~]# rm -rf test.txt 
Hi, 小姐姐 test.txt 已被移到回收站了呢~
#创建测试文件
[root@mail ~]# touch aaa.txt
#使用rm 删除该文件
[root@mail ~]# rm aaa.txt 
Hi, Trashing aaa.txt to /root/.trash
#查看一下回收站里的文件,已经被成功移过来了
[root@mail ~]# ll /root/.trash/2020_07_17/17/
total 0
-rw-r--r-- 1 root root 0 Jul 17 17:16 222
-rw-r--r-- 1 root root 0 Jul 17 17:36 aaa.txt
-rw-r--r-- 1 root root 0 Jul 17 17:14 eeee
-rw-r--r-- 1 root root 0 Jul 17 17:36 test.txt

现在我们删除一个测试文件:

rm a.txt 或者 rm -rf aaa.txt

会显示:Hi, 小姐姐 aaa.txt 已被移到回收站了呢~

6、回收站定期删除

因为我们上面的 shell 每次触发 rm 命令的时候都会去删除一个月前的目录,

所以就不需要定时器来删除 .trash 里面的文件了。

当然,你也可以不用定期删除。

选择手动去清空回收站

7、真实删除命令在哪呢?

如果强制清空"回收站"(即清空 .trash 目录),可以使用真正的 rm 命令:/bin/rm -rf ~/.trash/*

送给运维小姐姐的回收站

做一个回收站送给爱删除的你

从今以后,你的删除 我接盘了

rm -rf 你随便用,你玩删除的时候,已经不是删除了~emmm

【完整脚本链接:】

https://download.csdn.net/download/weixin_42350212/19871405

CSDN官方学习推荐 ↓ ↓ ↓

CSDN出的Python全栈知识图谱,太强了,推荐给大家!

这篇关于“你的rm -rf /*,我接盘了“——刚毕业的运维小姐姐总误删文件,我送了她一个命令行版 “回收站”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319023

相关文章

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后我还能恢复已删除的文件吗?” 答案是肯定的,但是在这种情况下您将需要一个  回收站恢复工具 来从回收站中检索文件: 错误/永久删除回收站或任何数字存储设备中的文件 直接删除的文件/

毕业前第二次面试的感慨

距面试已经过去了有几天了,我现在想起来都有说多的恨感慨。 我一直都是想找刚刚起步的企业,因为这能让我学到更多的东西,然而正好有一家企业是刚起步的,而且他还有自己的产品专利,可以说这是一家,即是创业又是刚起步的公司,这家公司回复了我投给他的简历,这家企业想进一步了解我的情况,因为简历上我符合这家企业的基本要求,所以要进一步了解。 虽然面试的过程中,他给我的面试题,我做得并不是很理想,

网络安全运维培训一般多少钱

在当今数字化时代,网络安全已成为企业和个人关注的焦点。而网络安全运维作为保障网络安全的重要环节,其专业人才的需求也日益增长。许多人都对网络安全运维培训感兴趣,那么,网络安全运维培训一般多少钱呢?   一、影响网络安全运维培训价格的因素   1. 培训内容的深度和广度   不同的网络安全运维培训课程涵盖的内容有所不同。一些基础的培训课程可能主要涉及网络安全基础知识、常见安全工具的使用等,价

Jenkins--pipeline认识及与RF文件的结合应用

什么是pipeline? Pipeline,就是可运行在Jenkins上的工作流框架,将原本独立运行的单个或多个节点任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。 为什么要使用pipeline? 1.流程可视化显示 2.可自定义流程任务 3.所有步骤代码化实现 如何使用pipeline 首先需要安装pipeline插件: 流水线有声明式和脚本式的流水线语法 流水线结构介绍 Node:

C++入门(05-2)从命令行执行C++编译器_GCC

文章目录 GCC编译器1. 下载MinGW-w64,安装(不推荐)2. 使用MSYS2安装MinGW-w64(推荐)2.1 安装MSYS22.2 初始化和更新2.3 安装MinGW-w64编译器2.3 在MSYS2 Shell中导航到代码目录2.4 使用 g++ 编译2.5 运行可执行文件 GCC编译器 GCC(GNU Compiler Collection)是一个开源编译器集

C++入门(05)从命令行执行C++编译器_MSVC

文章目录 1.C++ 编译器2. 常用 C++ 编译器MSVC(Microsoft Visual C++)GCC(GNU Compiler Collection)Clang 3. MSVC 编译器3.1 开发者命令提示符3.2 编译 C++ 代码 1.C++ 编译器 将C++源代码(扩展名为 .cpp )转换成计算机可以运行的可执行程序 编译器会检查代码的语法和语义,生成相应