rm命令处理(防止误删)

文章目录

  • 前言:
  • 一、添加回收站脚本
  • 二、测试
    • 1.rm命令测试
    • 2.清理回收站
  • 三、自动建立回收站脚本
  • 总结


前言:

前几天本来想对开发板上的内容进行一个转移,一边心想这直接mv -rf * dir不就行了嘛,一边打上了rm -rf * dir。。。然后。。。。我的所有文件。。就。。。。。。和我say good bye了。。。呜呜呜,呃说来满尴尬的哈哈哈哈,于是我终于对/bin/rm命令动手了。

一、添加回收站脚本

我们选择在~/.bashrc中添加脚本内容如下:

#rm_safe@dyh
mkdir -p /opt/recycle_bin       #创建回收站
alias rm=del                    #注意:这里是给del创建别名来覆盖rm,而不是给rm创建别名
del()                           #让覆盖后的rm命令作用为移动到回收站
{mv "$@" /opt/recycle_bin
}
compledel()                   #compledel彻底删除回收站中的所有文件
{read -p "delete sure?[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" val[ "$val" == 'y' ] || [ "$val" == 'Y' ]  && /bin/rm -rf /opt/recycle_bin/*
}

首先,我们添加的内容中在/opt目录下创建我们的回收站文件夹recycle_bin,然后通过alias命令来给我们之后会创建的del命令定义别名为rm,从而覆盖了rm之前的删除命令,注意这里并不是给rm创建别名,然后我们定义del的作用为把对应文件转移到/opt/recycle_bin目录下,所以我们之后使用rm命令将会被此功能所覆盖,最后我们定义compledel命令来彻底删除回收站中的所有文件,用于清理我们的回收站。

保存后并source脚本即可使用:

source ~/.bashrc

可以看见现在/opt目录下已经有我们的回收站了:
在这里插入图片描述

二、测试

1.rm命令测试

代码如下:

rm test_rm.sh

通过以上命令可以见得,使用rm命令后test_rm.sh文件成功被移至了回收站当中:
在这里插入图片描述
在这里插入图片描述

2.清理回收站

代码如下:

compledel	

我们可以在任何位置下使用compledel命令来清空回收站,任何将会弹出提示,经过选择后就可以清空回收站了,可以见到清空后/opt/recycle_bin目录下所有文件被清除了。
在这里插入图片描述

三、自动建立回收站脚本

当然,我也为大家准备了自动建立回收站的脚本,如下:

#!/bin/bashecho "创建回收站功能,防止rm误删"
cat>>~/.bashrc<<END
#rm_safe@dyh
mkdir -p /opt/recycle_bin       #创建回收站
alias rm=del                    #注意:这里是给del创建别名来覆盖rm,而不是给rm创建别名
del()                           #让覆盖后的rm命令作用为移动到回收站
{mv "\$@" /opt/recycle_bin
}
compledel()                   #compledel彻底删除回收站中的所有文件
{read -p "delete sure?[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" val[ "\$val" == 'y' ] || [ "\$val" == 'Y' ]  && /bin/rm -rf /opt/recycle_bin/*
}
END

我们创建一个以上内容的shell脚本后,只需要赋值后运行此脚本:

chmod a+x xxx.sh
./xxx.sh
source ~/.bashrc

然后我们就可以得到回收站功能了,这样可以方便于我们在各种环境下进行开发时可以一键进行回收站的构建,以后再也不拍不小心把rm当mv用啦!

在这里插入图片描述


总结

此篇文章是因为不小心把所有需要mv命令转移的文件误用rm命令删除的惨痛经验来换取的一篇经验性文章,通过使用alias重命名的方式来把rm命令进行了替换,简历了一个名为recycle_bin的回收站,从而达到防止我们在开发过程中误用rm命令删除有用文件的功能,希望此篇文章能对大家有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos源码本地用idea启动不了 Unable to start embedded Tomcat

1.报错 org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcatat org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:142)at org.springframework.boot.web.embedded.tomcat.TomcatWebSe…

UE5 CommonUI的使用(附源码版)

UE5 CommonUI的使用 前言快速配置配置Game Viewport Client ClassCommonGameViewportClient源代码 创建CommonInputAction表默认导航Action设置CommonUIInputData源码 Bind CommonInputBaseControllerDataCommonInputBaseControllerData源码 Common UI控件库和控件样式CommonUs…

U8G2移植到STM32,SSD13XXXOLED(硬件SPI DMA通讯)

文章目录 一、前言1.1 U8g2的特点1.2 U8G2的优势1.3 U8G2的下载地址1.4 U8g2支持的显示控制器 二、STM32Cubexm SPI DMA配置2.1 SPI设置为半双工模式2.2 SPI DMA设置2.3 oled其他引脚配置 三、移植U8G2框架3.1 精简U8G2库文件3.2 去掉csrc文件夹中无用的驱动文件3.3 文件移动到…

庆余年2火了,却把热爱开源的程序员给坑了

庆余年 2 终于开播了&#xff0c;作为一名剧粉&#xff0c;苦等了五年终于盼来了。开播即爆火&#xff0c;虽然首播的几集剧情有些拖沓&#xff0c;不过也不影响这是一部好剧。 然而&#xff0c;庆余年 2 的爆火&#xff0c;却把 npmmirror 镜像站给坑惨了。npmmirror 镜像站&…

gem5模拟器入门(二)——创建一个简单的配置脚本

本章教程将引导您设置一个简单的 gem5 仿真脚本&#xff0c;并首次运行 gem5。假设您已经完成了gem5模拟器入门&#xff08;一&#xff09;——环境配置-CSDN博客&#xff0c;并成功构建了带有可执行文件 build/X86/gem5.opt 的 gem5。 配置脚本将模拟一个非常简单的系统&#…

LangChain实战 | 3分钟学会SequentialChain怎么传多个参数

SequentialChain参数传递&#xff0c;总结了以下四种类型 参数传递入参出参一 对 一11一 对 多1n多 对 一n1多 对 多nn 0.连接大模型 先选一个llm&#xff0c;参考这篇博客选择一个国内大模型 LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问 from langchain_comm…

网络侦察技术

网络侦察技术 收集的信息网络侦察步骤搜索引擎检索命令bing搜索引擎Baidu搜索引擎Shodan钟馗之眼(zoomeye) whois数据库&#xff1a;信息宝库查询注册资料 域名系统网络拓扑社交网络跨域拓展攻击 其它侦察手段社会工程学社会工程学常见形式Web网站查询 其它非技术侦察手段总结网…

巅峰对决:OpenAI与Google如何用大模型开创未来

2024年&#xff0c;人工智能领域正引领着一场波澜壮阔的全球技术革命。 5月14日&#xff0c;OpenAI揭开了其新一代多模态人工智能大模型GPT4系列的神秘面纱&#xff0c;其中GPT-4o不仅拥有流畅迷人的嗓音&#xff0c;还展现出幽默、机智和深刻的洞察力……紧接着&#xff0c;在…

linux下cp和mv命令显示进度条

1.查看当前系统下coreutils工具包的版本号&#xff1a; [rootk8s-master ~]# rpm -qa | grep -w coreutils coreutils-8.22-24.el7_9.2.x86_64当前版本为8.22。 因为cp 和 mv 命令由 coreutils 软件包提供&#xff0c;所以需要重新下载 coreutils 软件包配置补丁 2.下载core…

数据结构——顺序表基本操作的实现(初始化、取值、查找、插入)

一、线性表与顺序表的概述 线性表的数据元素的逻辑特征是线性的&#xff0c;是一种典型的线性结构。这样的结构可以借鉴数组&#xff0c;如数组a[10]中&#xff0c;a[1]前一定是a[0]&#xff0c;a[1]后一定是a[2]&#xff0c;首结点&#xff08;a[0]&#xff09;前面无元素&am…

java医院管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 医院管理系统的主要使用者分…

VR法治教育展厅互动体验突破了地域限制

VR全景互动展厅搭建编辑器以其卓越的特点、强大的功能及实际应用中的显著优势&#xff0c;成为企业级VR应用的得力助手。这款软件不仅能够制作逼真的虚拟场景&#xff0c;更能让用户沉浸其中&#xff0c;体验前所未有的真实感。 它拥有高度逼真的视觉效果&#xff0c;采用先进的…

智能单款计划助力品牌利润增长

零售品牌若要在激烈的市场竞争中胜出&#xff0c;季中单款的管理无疑是商品生命周期管理的核心环节之一。而单款计划的制定&#xff0c;首先依赖于对爆款、平销及滞销产品的敏锐洞察。一个利润现象不得不引起我们的关注&#xff1a;爆款产品的销售&#xff0c;往往成为拉动品牌…

svix - webhooks

文章目录 一、关于 SvixClient Library Overview与 Svix 托管服务的区别 二、运行服务器1、部署1.1 Docker1) 使用 Docker Compose2) 独立容器 1.2 预编译的二进制文件1.3 从源代码构建 2、运行时依赖项3、Redis/Valkey 注意事项持久性 Eviction 政策4、服务器配置4.1 配置文件…

express.js--生成token(二)

主要作用是访问路由接口时&#xff0c;生成身份权限信息 下载依赖 npm i express-jwt npm i jsonwebtoken 配置管理 config/index.js module.exports {app: {port: process.PORT || 3000,//jwt密钥jwtSecret: jwtSecret,//token过期时间expiresIn: 60 * 60 * 24,} } con…

从零开始:如何集成美颜SDK和优化美颜接口

今天&#xff0c;小编将从零开始&#xff0c;详细讲解如何集成SDK并优化美颜接口。 一、选择合适的美颜SDK 评估SDK的功能 在评估过程中&#xff0c;可以通过阅读官方文档、查看示例代码以及实际测试来确定SDK是否符合需求。 兼容性和性能 确保其支持你开发的应用平台&…

Android15 Beta更新速览

Android15 Beta更新速览 前台服务变更 前台服务使应用保持活动状态&#xff0c;以便它们可以执行关键且对用户可见的操作&#xff0c;通常以牺牲电池寿命为代价。在 Android 15 Beta 2 中&#xff0c;dataSync 和 mediaProcessing 前台服务类型现在具有约 6 小时的超时时间&a…

内网安全--隧道技术-CS上线本地

免责声明:本文仅做技术交流与学习...请勿非法搞破坏... ---隧道技术:硬刚网络协议,(你不让我走我偏走!) 解决不出网协议上线的问题&#xff08;利用出网协议进行封装出网&#xff09; 代理协议&#xff1a; SOCKS4/5 代理软件&#xff1a; SocksCap Proxifier ProxyChains(…

磁盘管理以及文件系统08

1、为什么要对磁盘进行分区&#xff1f; 业务层面&#xff1a;为满足一定的需求所是做的特定操作。 2、硬盘是什么&#xff0c;以及硬盘的作用 硬盘&#xff1a;计算机的存储设备&#xff0c;一个或者多个带磁性的盘组成的&#xff0c;可以在盘片上进行数据的读写。硬盘的最…

LVGL圆弧、线条、图片、色环、按钮矩阵、文本区域、键盘部件

目录 LVGL圆弧部件 LVGL线条部件 LVGL图片部件 LVGL色环部件 LVGL按钮矩阵部件 LVGL文本区域部件 LVGL键盘部件 LVGL圆弧部件 圆弧部件以弧形滑动的形式来调节、显示某个参数的值。 圆弧部件组成部分&#xff1a; 背景弧&#xff08;LV_PART_MAIN&#xff09; 前景弧&am…