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.pswp.cn/news/539433.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539433.shtml
英文地址,請注明出處:http://en.pswp.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;近樂從傢俬城…