1. 程式人生 > >記一次驚險的檔案恢復經歷Eclipse saved my day

記一次驚險的檔案恢復經歷Eclipse saved my day

事情起因

事情的起因是這樣的:為了替換掉程式碼中某個常量的值,我使用了sed命令,本來以前用得好好的,這次討巧嘗試了一種新的方法,結果因為對sed不夠了解,又沒有經過試驗,想當然地對程式碼檔案進行了處理,結果就悲劇了——所有被處理過的檔案內容都被清空了。

峰迴路轉

怎麼鬱悶,怎麼想各種辦法,我就不多說了。決定放棄之前,我抱著死馬當活馬醫的想法,用命令# find / -type f | xargs grep TSCFG | tee /result.txt對根目錄進行了搜尋,結果就有了新的發現。

我發現經過編譯除錯的程式碼完整地儲存在/home/cheshi/workspace/.metadata/.plugins/org.eclipse.core.resources/.history

路徑下,這應該是Eclipse的快取機制吧。遂,大喜,馬上將整個路徑備份了下來。

恢復過程

這下面的檔案很多,可以說歷次除錯的版本都有,於是找到的版本越新,自己的損失就越小。

這裡可以藉助檔案的修改時間進行排序:

[[email protected]1 .history]$ grep -R "test suite 02" * | cut -d: -f1 | xargs ls -latr
-rwxr-xr-x. 1 cheshi cheshi 7716 Jun  6 18:54 2b/f089a6e6a64a00171f61d55dca7b3cc2
-rwxr-xr-x. 1 cheshi cheshi 7716
Jun 6 18:57 4b/303e4ff4a64a00171f61d55dca7b3cc2 -rwxr-xr-x. 1 cheshi cheshi 7711 Jun 6 18:57 5e/d04b5e37a74a00171f61d55dca7b3cc2 -rwxr-xr-x. 1 cheshi cheshi 7785 Jun 6 18:59 44/10a8f995a74a00171f61d55dca7b3cc2 -rwxr-xr-x. 1 cheshi cheshi 7780 Jun 6 19:02 3d/a0031eb9234b0017185cd9c382df1e5c -rwxr-xr-x. 1 cheshi cheshi 7781
Jun 7 09:50 bd/f08a55ea244b0017185cd9c382df1e5c -rwxr-xr-x. 1 cheshi cheshi 7850 Jun 7 09:59 d5/d09530e8294b0017185cd9c382df1e5c -rwxr-xr-x. 1 cheshi cheshi 7850 Jun 7 12:51 4e/303a47143d4b0017185cd9c382df1e5c -rwxr-xr-x. 1 cheshi cheshi 7845 Jun 7 12:52 ad/00ab90393d4b0017185cd9c382df1e5c -rwxr-xr-x. 1 cheshi cheshi 7779 Jun 7 12:53 f5/b01849403d4b0017185cd9c382df1e5c [[email protected]1 .history]$

經驗總結

這是一次驚險的經歷,當然也是一次收穫,總結如下:

  1. 命令sed -i有一定的危險性,使用的時候要小心;
  2. 對於陌生的命令和用法,最好先經過試驗,不要想當然;
  3. 檔案要及時備份,不論是通過git還是tar,這點非常重要!
  4. 最後,不要輕言放棄。

寄語

不多說了,只希望能夠幫到更多的人,哪怕只是一個思路而已。