佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 用grep恢復誤刪的文本文件

用grep恢復誤刪的文本文件

熱門標簽:服務器配置 電話機器人搭建 百度競價點擊價格的計算公式 硅谷的囚徒呼叫中心 解決方案 家政服務網絡 外呼系統(tǒng) 美團
在 Linux 上如果事先沒有用別名(alias)修改默認的 rm 功能,rm 后文件就會丟失,幸運的是,在一般的刪除文件操作中,Linux 并不會立即清空存儲該文件的 block 內容,而只會釋放該文件所占用的 inode 和 data block,Linux 上 rm 的過程其實就是將 inode bitmap 和 data block bitmap 中的相應標識設為空閑狀態(tài)的過程,并不涉及到真正的數(shù)據(jù),這也是為什么在 Linux 下刪除大文件這么快速的原因,因為大文件所占的磁盤根本就沒有清空。所以,如果我們能找到文件對應的 inode,由此查到相應的 data block,就可能從磁盤上把已刪除的文件恢復出來,很多文件/磁盤恢復工具都是這么做的。

一般來說二進制文件、庫文件等刪除后都可以從其他 Linux 拷貝恢復,不是很要緊,如果自己辛苦寫的腳本或者配置文件誤刪了就杯具了。誤刪這種蠢事經常在 VPSee 身上發(fā)生,最近一次是在今年年初的時候,開了 screen 多次 ssh 到不同服務器上,在前后切換的過程中刪除了一個很肯定的配置文件,后來發(fā)現(xiàn)刪的文件是對的,可惜在一臺錯誤的服務器上,本來應該在 A 服務器上刪除 file.txt 結果在 B 服務器上刪除了 file.txt,多個 screen 和 ssh 把自己搞暈了,而且主機名沒有安排好,多臺機器都是用的 localhost,不利于識別當時的環(huán)境。如果使用 Linux 的時候不幸誤刪了一個文本文件怎么辦呢?

先臨時建一個文本文件 vpsee.log 做測試,然后刪除這個文件:

$ echo "important log file for vpsee.com" > vpsee.log

$ cat vpsee.log
important log file for vpsee.com

$ rm vpsee.log如果能記住剛才刪除文件中的某個關鍵字的話可以用 grep 搜索整個 /dev/sda1,-a 標志位的意思是把 /dev/sda1 這個分區(qū)看成是文本形式的(分區(qū)本身是二進制形式的),-B 10 -A 100 的意思是如果找到關鍵字就打印出其前10行和后100行的內容:

# grep -a -B 10 -A 100 'vpsee.com' /dev/sda1 > tmp.txt在一堆 @ 之間可以找到我們剛才刪除的內容:

$ vi tmp.txt
...
@$^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@Ç^@^@^@^A^@^@^@^@^@^@^@^@^@^@^@È^K^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@È^K^@^@×^@
^@^@important log file for vpsee.com
@
@
...當然,如果誤刪了二進制、doc、png/jpg/gif 之類的文件,可以用一些第三方 ext2/ext3 文件恢復工具幫助恢復文件,比如 TestDisk, PhotoRec 等。

標簽:南昌 撫州 邢臺 臨沂 北海 韶關 防城港 烏蘭察布

巨人網絡通訊聲明:本文標題《用grep恢復誤刪的文本文件》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    新龙县| 安泽县| 阿巴嘎旗| 滨海县| 邳州市| 三都| 景泰县| 宁津县| 满城县| 万载县| 肥乡县| 自贡市| 岢岚县| 夏邑县| 达拉特旗| 洞口县| 察雅县| 德格县| 莱阳市| 枞阳县| 辽阳县| 肥城市| 昔阳县| 东丰县| 白河县| 福贡县| 江口县| 南岸区| 大足县| 登封市| 资源县| 南丰县| 措勤县| 灵川县| 游戏| 诏安县| 黔西县| 保山市| 井冈山市| 辰溪县| 怀集县|