記一次驚險的檔案恢復經歷Eclipse saved my day
阿新 • • 發佈:2018-10-31
事情起因
事情的起因是這樣的:為了替換掉程式碼中某個常量的值,我使用了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]$
經驗總結
這是一次驚險的經歷,當然也是一次收穫,總結如下:
- 命令
sed -i
有一定的危險性,使用的時候要小心; - 對於陌生的命令和用法,最好先經過試驗,不要想當然;
- 檔案要及時備份,不論是通過
git
還是tar
,這點非常重要! - 最後,不要輕言放棄。
寄語
不多說了,只希望能夠幫到更多的人,哪怕只是一個思路而已。