2012-07-08 3149 views
3

我這樣做是在命令行(Ubuntu的12.04)如何在Linux中恢復被另一個文件覆蓋的文件?

MV some_arbit_file上required_file

有沒有什麼辦法可以恢復required_file。我已經做了很多工作。我通常備份文件。但是,我忘了這一次。將感謝任何幫助。

謝謝。

+1

您可以通過superuser.com或Ubuntu堆棧交換 – Piku 2012-07-08 08:24:37

+0

得到更好的響應。謝謝。我要問在superuser.com – Rakesh 2012-07-08 08:45:34

回答

0

看一看這個ext3 recovery頁面。

因爲這很難,所以我試着主動地在每個目錄中使用git。這樣,當我犯了一個錯誤,我可以git checkout舊的文件回來。

+0

謝謝。我看到我的文件系統是ext4。 – Rakesh 2012-07-08 08:41:44

1

您可以嘗試使用testdisk包中的photorec。它在你刪除文件時起作用,但我不知道是否覆蓋它會被視爲刪除。

未來,我會建議你使用像Dropbox這樣的服務來處理所有重要的文件。它允許你恢復每個文件的任何版本。

+0

我不認爲Dropbox會是一個合適的備份工具,您將被迫決定哪些文件足夠重要以備份,或爲更多存儲空間支付大量資金。最好是使用Rsnapshot.org之類的軟件,然後購買一個備份硬盤,然後每小時運行一次cron作業來維護這一切。 – Piku 2012-07-08 08:53:06

+0

@Piku,當然你不能儲存所有東西。但我有13GB(免費),我發現「重要」文件(編程項目,自編軟件包,大學等)只需要3.5GB,我認爲同樣的解決方案適合很多其他人。當然,我有整個系統的備份(大約160GB)。 – Zagorax 2012-07-08 09:00:08

0

你不能「撤銷」你的命令。也許你可以找到一些恢復工具,將幫助你...

順便下次,爲了避免這種麻煩,我建議你使用-i選項。它會告訴你是否要覆蓋文件。

可以在~/.bashrc創建別名:

alias mv="mv -i" 
#you can also add aliases to cp and rm 
alias cp="cp -i" 
alias rm="rm -i" 
+0

嘗試在一個包含數千個文件的大型深度嵌套目錄結構中,這可能會變得不方便。 – Piku 2012-07-08 08:56:08

2

爲了防止這種問題你需要有一個備份系統的未來。如果此備份系統執行某種形式的版本控制,並且不需要您爲維護而做出任何努力,則會更好。你不想考慮哪些文件需要備份,它應該是「所有的,甚至是/ tmp的內容,至少每小時」

使用git/svn或其他文件版本控制系統是不是一個壞主意,但是如果忘記將新文件添加到回購站會發生什麼?如果回購本身被刪除會發生什麼?當您嘗試將整個音樂收藏集放入其中時,或想要存儲特殊的unix文件(如管道和符號鏈接)時會發生什麼?我也發現git repos瘋狂易腐敗,特別是如果我手動刪除或移動它們。

一個更強大的系統是首先購買一個適當大小的新硬盤 - 一到兩兆兆字節就足夠了。指定您的備份驅動器。然後得到像Rsnapshot這樣的東西,並使其工作。然後,您將擁有版本控制的備份,這些備份可以使用標準文件工具從一臺從CD啓動的半破機器中恢復,而在啓動驅動器發生災難性故障(網絡無法啓動)後網絡無法啓動。

在Rsnapshot和Apple的TimeMachine(其工作方式非常類似)之間,我已經從幾個SSD故障中恢復過來,硬盤崩潰和一個電源切斷,這一切都使我的音樂收藏失去了一半,直到一週後我才發現。