rm: 无法删除swap: 不允许的操作_safe-rm老板再也不用担心我删库跑路啦[视频]

3503fb28a49e394ccda628f2936c3046.png
saferm 老板再不怕我删库跑路https://www.zhihu.com/video/1177717527541731328

在 linux 上,使用 rm 是一件非常危险的事情(最近又有朋友遇到了我才想起了写这篇文章),如果不幸手残执行了 rm -rf 删除了重要文件,建议你准备收拾包袱跑路吧。

既然 rm 删除操作非常危险,恢复数据又很困难(甚至某些场景无法恢复),那有没有工具可以像 windows 下或者 macos 下的垃圾桶呢, 删除之后放到垃圾桶里,如果发现误删了直接去垃圾桶恢复就好啦。这一次介绍我在 macos 和 linux server(centos) 上常用的安全删除工具,有了它们,老板就再也不用担心我删库跑路啦。( 评论区有人列举了一些不建议使用的理由,其实我个人一般只在自己的 mac 和开发机使用,不建议修改线上机器,每种工具都有使用场景,请自行斟酌使用)

Macos rmtrash

首先你要安装 homebrew, 如果你用的 macOS 还没装 brew 那就太可惜了,一个非常方便的包管理工具。 homebrew 作者就是那个"大名鼎鼎"的 Max Howell, 因为应聘 google 白板编程没有写出来翻转二叉树被拒,后来去了苹果公司的工程师。

brew install rmtrash

一句话就可以安装完成了,然后呢在你的 bashrc 或者 zshrc 里边加个 alias 就可以了。

alias rm='rmtrash'

这样你使用 rm 直接删除的文件就会放到你的用户 .Trash 隐藏文件夹里边,如果误删了可以去这里恢复即可。 rmtrash 可以直接删除文件夹,所以不需要 -r 参数了。

我们可以做一个测试,随便找一个文件夹建立一个文件,然后 rm 删除一下试试,比如:

# 进入用户主目录,创建一个文件"对象",然后 rm 删除看看
# 之后开你的垃圾箱或者 cd ~/.Trash 里边就可以找到了。其实 macos 下删除文件也是放到这里
cd
touch 对象
rm 对象

Linux/MacOS 通用

如果是 linux 用户,可以使用 safe-rm,笔者在自己的开发机(centos)上就是用的它。 这个是 github 地址

https://github.com/kaelzhang/shell-safe-rm​github.com

直接 clone 安装:

git clone https://github.com/kaelzhang/shell-safe-rm ~/.shell-safe-rm
# alias 加入到你的 bashrc or zshrc 里边,默认也是 .Trash(mac) 或者 linux "$HOME/.local/share/Trash/files"
# 如果你想修改默认垃圾桶的路径,直接使用 vim 之类的编辑器修改这个 rm.sh 文件开头的默认路径就可以了
alias rm='~/.shell-safe-rm/bin/rm.sh'

或者如果你有使用过 nodejs 也可以使用 npm 安装(笔者使用的这种方式)

npm install -g safe-rm;
alias rm='safe-rm'

同样可以做个简单的测试:

# 进入用户主目录,创建一个文件"痛苦的回忆",然后 rm 删除看看
# 之后 cd ~/.Trash 里边就可以找到了
cd
touch 痛苦的回忆
rm 痛苦的回忆

卸载:

# First remove the alias line from your ~/.bashrc file, then
npm uninstall -g safe-rm
# Or
make && sudo make uninstall
# Or
sudo sh uninstall.sh

如何恢复文件

恢复文件比较简单,你可以直接进入 .Trash (你设置的文件夹)然后直接 mv 文件到你想恢复的地方就可以了(注意别同名覆盖了)

同名冲突问题kaelzhang/shell-safe-rm 同名冲突问题

好了,大功告成。这里你就可以放心删除文件了,不过你可能在想,如果删除的文件名称相同冲突了怎么办。我自己测试了一下, rmtrash 会在被删除的同名文件加上 “Copy” 后缀,而 safe-rm 会加上时间后缀,所以不用担心垃圾箱里的文件会同名覆盖掉。 当然如果长期不用的话可以去 macOS 的垃圾桶点击清理(实际上macOS垃圾桶就是放到的.Trash),或者 unalias 一下然后删除。

小结

对于一些危险操作,还是尽量防患于未然。笔者当初也感觉不会手残,但是最终还是被打脸,误删了文件给自己造成了麻烦。 希望这俩工具对大家有帮助,再也不用担心误删跑路啦。如果有更好的工具欢迎评论区留言。

近期文章:

PegasusWang:程序员双十一剁手指南​zhuanlan.zhihu.com
405234cad6e82144c358b43ec1821b35.png
PegasusWang:完全不用鼠标写代码!你信么?[视频]​zhuanlan.zhihu.com
d91bfb3e264f743fed4404d6ffa81023.png

书籍推荐:

linux 程序员键盘:

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

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

相关文章

视频通信基础知识之采集

在之前的文章里,我们说了不少关于音视频相关的内容,但是一直没有系统的来介绍视频通信,接下来我们将出一个系列关于视频通信的文章。帮助大家对视频通信有一个更全面的认识。系列文大纲如下:视频通信采集视频通信处理视频通信编码…

Spring MVC 流程图

Spring工作流程描述1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获…

kafka maven没有下载_Kafka 系列(三)——Kafka 生产者详解

首先介绍一下 Kafka 生产者发送消息的过程:Kafka 会将发送消息包装为 ProducerRecord 对象, ProducerRecord 对象包含了目标主题和要发送的内容,同时还可以指定键和分区。在发送 ProducerRecord 对象前,生产者会先把键和值对象序列…

linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)

icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)下载地址:https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/Check-Iostat-Updated/details对脚本进行修改(默认为$12,12为w_await值,14为%util值)UTI…

centos7安装kubernetes1.9集群

节点规划 本次选用一个master节点,三个node节点来安装k8s集群。   节点IPM010.xx.xx.xxN010.xx.xx.xxN110.xx.xx.xxN210.xx.xx.xx集群启动前的准备(请用root用户执行) 节点准备工作(在每台机器上执行) 包括修改主机名,关闭防火墙等操作。  k8s集群会…

oracle中查询某张表的大小

select sum(bytes)/1024/1024 "表大小(M)" from user_segments where segment_nametable_name;--注,仅表数据的大小,不含索引、分区、LOB类型 select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segm…

python图像分割算法_OpenCV-Python 图像分割与Watershed算法 | 三十四

目标 在本章中, 我们将学习使用分水岭算法实现基于标记的图像分割 我们将看到:cv.watershed() 理论 任何灰度图像都可以看作是一个地形表面,其中高强度表示山峰,低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局…

linux dns 问题吗,Linux下DNS的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Nov 9 06:36:22 BJ-linux kernel: end_request: I/O error, dev fd0, sector 0Nov 9 06:36:22 BJ-linux kernel: end_request: I/O error, dev fd0, sector 0Nov 9 06:37:06 BJ-linux system-config-network[4031]: - //etc/…

NEO从源码分析看共识协议

2019独角兽企业重金招聘Python工程师标准>>> 0x00 概论 不同于比特币使用的工作量证明(PoW)来实现共识,NEO提出了DBFT共识算法。DBFT改良自股权证明算法(PoS),我没有具体分析过PoS的源码&#x…

oracle实现id自增和设置主键

1、关于主键:在建表时指定primary key字句即可: create table test( id number(6) primary key, name varchar2(30) ); 如果是对于已经建好的表,想增加主键约束,则类似语法: alter table test add constraint p…

python scrapy框架基如何实现多线程_Python实现在线程里运行scrapy的方法

本文实例讲述了Python实现在线程里运行scrapy的方法。分享给大家供大家参考。具体如下: 如果你希望在一个写好的程序里调用scrapy,就可以通过下面的代码,让scrapy运行在一个线程里。 """ Code to run Scrapy crawler in a thr…

怎样在linux系统上安装r,Linux系统之路——如何在CentOS7.2安装R(示例代码)

使用ubuntu的小伙伴们直接使用命令sudo apt-get installr-base-dev或者r-base搞定。然而对于使用centos的我却一直卡在安装这一步,十分的悲催,只有羡慕的份,但也不至于在linux上使用不上R。办法还是有的,自己总结出两种方法&#…

自定义实现栈的功能

栈的定义:栈是一个数据集合,我们可以吧它理解为是一个只能在一端进行插入或者删除的列表。栈的特点:先进后出 Stack() 建立一个空的栈对象push() 吧一个元素添加到栈的最顶层pop() 删除栈最顶层的元素,并返回这个元素gettop() 取栈…

mybatis循环map的一些技巧

<foreach>标签的用法&#xff1a; 六个参数&#xff1a; collection&#xff1a;要循环的集合 index&#xff1a;循环索引&#xff08;不知道啥用。。&#xff09; item&#xff1a;集合中的一个元素&#xff08;item和collection&#xff0c;按foreach循环理解&#xff…

linux部署node web,nodejs怎么部署到Linux上?

nodejs怎么部署到Linux上&#xff1f;下面本篇文章就来给大家介绍一下在Linux上部署nodejs的方法&#xff0c;希望对大家有所帮助。nodejs部署到Linux上的方法如下&#xff1a;(建议先安装xshell和xftp)1、到nodejs官网下载压缩包(选择合适自己系统的版本)&#xff0c;放到Linu…

python树莓派 是什么_用树莓派和Python给你的植物浇水

我想指出&#xff0c;我绝不是电子学专家。如果你让我制作一个电路图或者解释某件电子产品工作原理的细节&#xff0c;我会一无所知。在生活中&#xff0c;我对电力的工作原理有了基本的了解&#xff0c;我只是胡乱摆弄了一下电子元件就完成了这个工程。话虽如此&#xff0c;当…

htmlspecialchars() 函数过滤XSS的问题

htmlspecialchars()函数的功能如下&#xff1a; htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是&#xff1a; & &#xff08;和号&#xff09;成为 &" &#xff08;双引号&#xff09;成为 " &#xff08;单引号&#xff09;成为 …

c语言中 字母对应的数值,C语言编程:求下式中每个字母所代表的数字

编写程序求解下式中各字母所代表的数字&#xff0c;不同的字母代表不同的数字。PEAR- ARA PEA*问题分析与算法设计类似的问题从计算机算法的角度来说是比较简单的&#xff0c;可以采用最常见的穷举方法解决。程序中采用循环穷举每个字母所可能代表的数字&#xff0c;然后将字母…

用mac的python写网络爬虫_在mac下使用python抓取数据

2015已经过去&#xff0c;这是2016的第一篇博文&#xff01; 祝大家新年快乐&#xff01; 但是我还有好多期末考试&#xff01; 还没开始复习&#xff0c;唉&#xff0c;一把辛酸泪&#xff01; 最近看了一遍彦祖的文章叫做 所以自己也想小试牛刀.于是便开始动手写,但初次接触,…

運輸配送信息Delivery_Information

为什么80%的码农都做不了架构师&#xff1f;>>> 運輸配送信息Delivery_Information 金銀倉會選用以下運輸公司&#xff0c;為客戶配送磁磚傢俬潔具&#xff1a; 佛山冠昌達中港運輸&#xff08;散貨或包車&#xff0c;近佛山石灣的磁磚倉庫&#xff0c;近樂從傢俬城…