新聞中心
在日常工作中,我們經(jīng)常會(huì)面臨文件被意外覆蓋的問(wèn)題。這種情況的發(fā)生可能會(huì)損失重要的數(shù)據(jù),影響到工作的進(jìn)展,面對(duì)這種情況,我們?cè)撊绾位謴?fù)被覆蓋的文件呢?本文將介紹在Linux系統(tǒng)中恢復(fù)被覆蓋的文件的方法。

1. 立刻停止當(dāng)前所有的寫操作
當(dāng)我們發(fā)現(xiàn)文件被覆蓋后,一定要馬上停止當(dāng)前所有的寫操作,包括打開文件編輯器、重命名、復(fù)制、截?cái)嗟鹊热魏尾僮?,以保證文件的完整性和可恢復(fù)性。
2. 查看文件是否還能找回并找到被覆蓋的文件
在Linux系統(tǒng)中,被覆蓋的文件往往還可以找回。我們可以使用命令行來(lái)查看被覆蓋的文件是否還存在。使用“l(fā)s -i”命令可以列出文件的inode,如果被覆蓋的文件inode與被覆蓋后的文件inode不同,那么被覆蓋的文件很可能還會(huì)存在。
如果我們還不知道被覆蓋的文件的inode號(hào),可以使用“find”命令來(lái)查找文件。比如,我們想找回名為“example.txt”的文件,可以輸入以下命令:find / -name “example.txt”
3. 使用cp命令恢復(fù)被覆蓋的文件
如果我們找到了被覆蓋的文件,恢復(fù)它也很簡(jiǎn)單。我們可以使用cp命令把被覆蓋的文件復(fù)制回來(lái)。假設(shè)我們想恢復(fù)被覆蓋的文件名為“example.txt”的文件,可以輸入以下命令:cp /path/to/backup/example.txt /path/to/example.txt
其中, /path/to/backup/example.txt 是備份文件的路徑, /path/to/example.txt 是被覆蓋的文件的路徑。
4. 使用Foremost工具恢復(fù)被覆蓋的文件
如果使用cp命令無(wú)法恢復(fù)被覆蓋的文件,我們可以使用Foremost工具來(lái)嘗試尋找文件的文件頭信息并恢復(fù)被覆蓋的文件。我們需要在Linux系統(tǒng)中安裝Foremost。在Ubuntu和Debian系統(tǒng)中,可以使用以下命令安裝:sudo apt-get install foremost
安裝完成后,可以使用以下命令來(lái)尋找被覆蓋的文件:foremost -i /dev/sda1 -t jpg,pptx,pdf
其中, /dev/sda1 是被覆蓋的文件所在的磁盤, jpg、pptx、pdf 是我們想要恢復(fù)的文件格式。
Foremost工具會(huì)把尋找到的文件存在一個(gè)指定的目錄中,我們可以在該目錄下通過(guò)文件名找到被覆蓋的文件并進(jìn)行恢復(fù)。
5.
在Linux系統(tǒng)中,恢復(fù)被覆蓋的文件并不是一件難事,只要我們能夠迅速停止當(dāng)前所有的寫操作,嘗試使用命令行查找覆蓋前的文件,還可以使用cp命令或Foremost工具進(jìn)行恢復(fù)。希望本文可以對(duì)大家在Linux系統(tǒng)中恢復(fù)被覆蓋的文件有所幫助。
相關(guān)問(wèn)題拓展閱讀:
- 如何在Linux系統(tǒng)中恢復(fù)誤刪除的文件
如何在Linux系統(tǒng)中恢復(fù)誤刪除的文件
不返蠢小心刪除的文件應(yīng)該怎么恢漏盯陪復(fù)呢?則備今天我們一起來(lái)看一下
作為一個(gè)多用戶、多任務(wù)的操作系統(tǒng),Linux下的文件一旦被刪除,是難以恢復(fù)的。盡管刪除命令只是在文件節(jié)點(diǎn)中作刪除標(biāo)記,并不真正清除文件內(nèi)容,但是其他用戶和一些有寫盤動(dòng)作的進(jìn)程會(huì)很快覆蓋這些數(shù)據(jù)。不過(guò),對(duì)于家庭單機(jī)使用的Linux,或者誤刪文件后及時(shí)補(bǔ)救,還是可以回復(fù)的1、Ext2文件系統(tǒng)結(jié)構(gòu)的簡(jiǎn)單介紹在Linux所用的Ext2文件系統(tǒng)中,文件是以塊為單位存儲(chǔ)的,默認(rèn)情況下每個(gè)塊的大小是1K,不同的塊以塊號(hào)區(qū)分。每個(gè)文件還有一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)中包含有文件所有者,讀寫權(quán)限,文件類型等信息。對(duì)于一個(gè)小于12個(gè)塊的文件,在節(jié)點(diǎn)中直接存儲(chǔ)文件數(shù)據(jù)塊的塊號(hào)。如果文件大于12個(gè)塊,那么節(jié)點(diǎn)在12個(gè)塊號(hào)之后存儲(chǔ)一個(gè)間接塊的塊號(hào),在這個(gè)間接塊號(hào)清扮圓所對(duì)應(yīng)的塊中,存儲(chǔ)有256個(gè)文件數(shù)據(jù)塊的塊號(hào)(Ext2fs中每個(gè)塊號(hào)占用4字節(jié),這樣一個(gè)塊中所能存儲(chǔ)的塊號(hào)就是1024/4=256)。如果有更大的文件,那么還會(huì)在節(jié)點(diǎn)中出現(xiàn)二級(jí)間接塊和三級(jí)間接塊。2、恢復(fù)被誤刪文件的方法大多數(shù)Linux發(fā)行版都提供一個(gè)debugfs工具,可以用來(lái)對(duì)Ext2文件系統(tǒng)進(jìn)行編輯操作。不過(guò)在使用這個(gè)工具之前,還有一些工作要做。首先以只讀方式重新掛載被誤刪的文件所在分區(qū)。使用如下命令:(假設(shè)文件在/usr分區(qū))mount–r–n–oremount/usr-r表示只讀方式掛載;-n表示不寫入/etc/mtab,如果是恢復(fù)/etc上的文件,就加上這個(gè)參數(shù)。如果系統(tǒng)說(shuō)xxxpartionbusy,可以用fuser命令查看一下是哪些進(jìn)程使用這個(gè)分區(qū)上的文件:fuser–v–m/usr如果沒(méi)有什么重要的進(jìn)程,用以下命令停掉它們:fuser-k–v–m/usr然后就可以重新掛載這些文件系統(tǒng)了。如果是把所有的文件統(tǒng)一安裝在一個(gè)大的/分區(qū)當(dāng)中,可以在boot提示符下用linuxsingle進(jìn)入單用戶模式,盡量減少系統(tǒng)進(jìn)程向硬盤寫入數(shù)據(jù)的機(jī)會(huì),要不干脆把硬盤掛在別的機(jī)器上。另外,恢復(fù)出來(lái)的數(shù)據(jù)不要寫到/上面,避免破壞那些有用的數(shù)據(jù)。如果機(jī)器上有dos/windows,可以寫到這些分區(qū)上面:mount–r–n/dev/hda1/mnt/had然后就可以執(zhí)行debugfs:(假設(shè)Linux在/dev/hda5)#debugfs/dev/hda5就會(huì)出現(xiàn)debugfs提示符debugfs:使用lsdel命令可以列出很多被刪除的文件的信息:debugfs:lsdeldebugfs:2692deletedinodesfound.InodeOwnerModeSizeBlocksTimedeleted1921/1SunMay1319:22:462023…………………………………………………………………………………/1TueApr2410:11:/38MonMay2713:52:042023debugfs:列出的文件有很多(這里找到2692個(gè)),之一字段是文件節(jié)點(diǎn)號(hào),第二字段是文件所有者,第三字段是讀寫權(quán)限,接下來(lái)是文件大小,占用塊數(shù),刪除時(shí)間。然后就可以根據(jù)文件大小和刪除日期判斷那些是我們需要的。比如我們要恢復(fù)節(jié)點(diǎn)是196829的文件:可以先看看文件數(shù)據(jù)狀態(tài):debugfs:statInode:196829Type:regularMode:0644Flags:0x0Version:1User:0Group:0Size:149500FileACL:0DirectoryACL:0Links:0Blockcount:38Fragment:Address:0Number:0Size:0ctime:0x31a9a574–MonMay2713:52:042023atime:0x31a21dd1–TueMay2120:47:292023mtime:0x313bf4d7–TueMar508:01:272023dtime:0x31a9a574–MonMay2713:52:042023BLOCKS:………………………答塌……缺掘…….TOTAL:38然后就可以用dump指令恢復(fù)文件:debugfs:dump/mnt/hda/01.sav這樣就把文件恢復(fù)出來(lái)了。退出debugfs:debugfs:quit另一種方法是手工編輯inode:debugfs:miModeUserIDGroupIDSizeCreationtimeModificationtimeAccesstimeDeletiontime0Linkcount1BlockcountFileflagsReserved1FileaclDirectoryaclFragmentaddressFragmentnumberFragmentsizeDirectBlock#0…………………………….TripleIndirectBlock使用mi指令后每次顯示一行信息以供編輯,其它行可以直接按回車表示確認(rèn),把deletiontime改成0(未刪除),Linkcount改成1。改好后退出debugfs:debugfs:quit然后用fsck檢查/dev/hda5fsck/dev/hda5程序會(huì)說(shuō)找到丟失的數(shù)據(jù)塊,放在lost+found里面。這個(gè)目錄里的文件就是我們要的東東。關(guān)于linux 文件覆蓋原文件怎么恢復(fù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章名稱:如何在Linux系統(tǒng)中恢復(fù)被覆蓋的文件(linux文件覆蓋原文件怎么恢復(fù))
轉(zhuǎn)載來(lái)源:http://www.dlmjj.cn/article/cohpcjh.html


咨詢
建站咨詢
