记一次惊险的文件恢复经历Eclipse saved my day

来源:互联网 发布:scratch趣味编程 ppt 编辑:程序博客网 时间:2024/05/19 10:37

事情起因

事情的起因是这样的:为了替换掉代码中某个常量的值,我使用了sed命令,本来以前用得好好的,这次讨巧尝试了一种新的方法,结果因为对sed不够了解,又没有经过试验,想当然地对代码文件进行了处理,结果就悲剧了——所有被处理过的文件内容都被清空了。

峰回路转

怎么郁闷,怎么想各种办法,我就不多说了。决定放弃之前,我抱着死马当活马医的想法,用命令# find / -type f | xargs grep TSCFG | tee /result.txt对根目录进行了搜索,结果就有了新的发现。

我发现经过编译调试的代码完整地保存在/home/cheshi/workspace/.metadata/.plugins/org.eclipse.core.resources/.history路径下,这应该是Eclipse的缓存机制吧。遂,大喜,马上将整个路径备份了下来。

恢复过程

这下面的文件很多,可以说历次调试的版本都有,于是找到的版本越新,自己的损失就越小。

这里可以借助文件的修改时间进行排序:

[cheshi@cheshi-laptop-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[cheshi@cheshi-laptop-1 .history]$ 

经验总结

这是一次惊险的经历,当然也是一次收获,总结如下:

  1. 命令sed -i有一定的危险性,使用的时候要小心;
  2. 对于陌生的命令和用法,最好先经过试验,不要想当然;
  3. 文件要及时备份,不论是通过git还是tar,这点非常重要!
  4. 最后,不要轻言放弃。

寄语

不多说了,只希望能够帮到更多的人,哪怕只是一个思路而已。

原创粉丝点击