自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

3種找回nix刪除文件方法

系統(tǒng) 其他OS
知道被Unix刪除的文件內(nèi)容中若干字節(jié)的內(nèi)容,而且該文件長(zhǎng)度又不超過(guò)一個(gè)磁盤 塊,那么可以在整個(gè)文件系統(tǒng)中搜索這一字節(jié)串,得出一個(gè)文件所在的數(shù)據(jù)塊,將它們的塊號(hào)填入一個(gè)i節(jié)點(diǎn),即可恢復(fù)一個(gè)文件。

我們知道Unix刪除一個(gè)文件的具體步驟是: 根據(jù)文件i節(jié)點(diǎn)的地址表逐一釋放文件占用的磁盤數(shù)據(jù)塊,然后清空相應(yīng)的節(jié)點(diǎn),最后釋放i節(jié)點(diǎn)。 刪除一個(gè)目錄的過(guò)程是: 首先逐一刪除目錄里的所有文件,然后刪除目錄。目錄本身也是一個(gè)文件,故Unix刪除方法與刪除文件一致。

要恢復(fù)被刪除的文件,只能根據(jù)刪除后留下的東西去做文章。Unix刪除文件后留下了什么呢?由上述分析可知: 其一,留下了文件的內(nèi)容; 其二,留下了“現(xiàn)場(chǎng)”。文件的恢復(fù)策略只能從這兩個(gè)方面來(lái)分析。

根據(jù)內(nèi)容恢復(fù)

若現(xiàn)場(chǎng)已被破壞,即硬盤發(fā)生過(guò)寫操作,那么只好根據(jù)內(nèi)容來(lái)恢復(fù)。而且,由于Unix是一個(gè)多進(jìn)程、多用戶系統(tǒng),它每一次開關(guān)機(jī)或硬件、通信故障等都會(huì)記錄 系統(tǒng)日志、.sh_history等,硬盤現(xiàn)場(chǎng)被破壞的可能性極大。因此討論按內(nèi)容恢復(fù)的方法具有更大的實(shí)用價(jià)值。筆者經(jīng)過(guò)實(shí)際探索得出下列幾種恢復(fù)策略 供參考。

● Unix刪除文件關(guān)鍵字搜索法

如果知道被刪除的文件內(nèi)容中若干字節(jié)的內(nèi)容,而且該文件長(zhǎng)度又不超過(guò)一個(gè)磁盤 塊,那么可以在整個(gè)文件系統(tǒng)中搜索這一字節(jié)串,得出一個(gè)文件所在的數(shù)據(jù)塊,將它們的塊號(hào)填入一個(gè)i節(jié)點(diǎn),即可恢復(fù)一個(gè)文件。

搜索文件系統(tǒng)的算法很簡(jiǎn)單,說(shuō) 明如下: 首先,用“#df -k”命令確定文件系統(tǒng)的設(shè)備文件名(如/dev/root); 然后,用下述函數(shù)搜索,若成功,返回?cái)?shù)據(jù)塊號(hào),反之返回-1。其中fsname是文件系統(tǒng)的設(shè)備名,如/dev/root,comp()參數(shù)是實(shí)現(xiàn)搜索條 件的函數(shù)。
 

  1. long searchfs(char *fsname , int comp())   
  2. { FILE *fp;   
  3. char buf[1024];   
  4. long i=0;   
  5. fp=fopen(fsname,"r");   
  6. while (!feof(fp))   
  7. { fread(buf,1024,1,fp);   
  8. if (comp()) /* 檢查是否符合搜索條件 */   
  9. return i; /* 若成功返回塊號(hào) */   
  10. i++;   
  11. }   
  12. fclose(fp);   
  13. return -1; /* 未找到符合條件的塊,返回-1*/ }  

● Unix刪除文件精確長(zhǎng)度搜索法

如果知道被刪除文件的精確長(zhǎng)度(字節(jié)數(shù)),那么可根據(jù)一個(gè)數(shù)據(jù)塊的大小,計(jì)算出文件的最后一個(gè)數(shù)據(jù)塊中數(shù)據(jù)的精確長(zhǎng)度,該數(shù)據(jù)塊中其他字節(jié)必然是全0。根 據(jù)這一條件,通過(guò)搜索整個(gè)文件系統(tǒng),找出其中符合條件的數(shù)據(jù)塊,若出現(xiàn)多個(gè)塊符合要求,則還需要根據(jù)其他條件區(qū)分。但不管怎樣,根據(jù)精確長(zhǎng)度分析也是恢復(fù) 數(shù)據(jù)的一個(gè)策略。

● Unix刪除文件內(nèi)容關(guān)聯(lián)法

如果知道文件內(nèi)容中存在某種可實(shí)現(xiàn)的關(guān)聯(lián),例如文件的校驗(yàn)和或者文件內(nèi)容的某種上下文關(guān)系,那么也可通過(guò)搜索整個(gè)文件系統(tǒng),通過(guò)反復(fù)嘗試尋找符合關(guān)聯(lián)條件的磁盤數(shù)據(jù)塊,進(jìn)而恢復(fù)一個(gè)文件。

Unix刪除的文件找回方法,我們就講解到這里。

【編輯推薦】

  1. Unix操作系統(tǒng)腳本的講解
  2. Unix文本文件知識(shí)講解
  3. Unix操作系統(tǒng)進(jìn)程知識(shí)學(xué)習(xí)
  4. Unix操作系統(tǒng)中DOS文件知識(shí)
  5. Unix文件系統(tǒng)自動(dòng)安裝與拆卸
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-30 18:25:25

Unix刪除

2011-07-20 13:07:30

Windows 7恢復(fù)

2017-06-09 13:51:42

Linux命令刪除文件

2020-10-18 08:46:14

找回回收站文件

2010-04-19 16:56:19

Oracle數(shù)據(jù)庫(kù)初始

2009-07-17 09:47:41

Linux RootLinux使用Linux開發(fā)

2016-12-13 23:08:48

Linux命令

2010-04-19 17:10:53

Oracle用戶密碼

2019-02-13 14:55:22

Windows 10視頻刪除聲音

2024-08-23 09:06:26

2018-11-07 16:01:57

安卓

2018-10-07 07:00:59

2021-02-26 12:02:14

智能設(shè)備安全物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)

2010-06-21 16:39:10

Linux備份

2023-10-23 10:15:40

UbuntuNixLinux

2010-10-22 16:29:11

SQL Server刪

2010-11-03 11:49:15

刪除DB2數(shù)據(jù)

2020-11-13 09:14:23

Linux重復(fù)文件命令行

2022-03-26 09:18:06

Linux命令行工具刪除文件

2019-07-17 09:20:00

Scalpel系統(tǒng)管理員Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)