刚刚有个小伙伴不小心删了他写了好几的天代码,为他心疼之余帮他找回了文件。
想到我之前也常常误删一些文件,就干脆分享一下我的反删除方法,并说说我做的回收站。
首先是反删除软件extundelete。在ubuntu下安装方法很简单,如下:
sudo apt-get install extundelete
我用的是它最简单的功能:
extundelete /dev/sda1 --after 1480928228 --restore-all
这句话的意思是恢复绝对时间1480928228之后被删除的所有文件(至少我是这么理解的),在哪个文件夹里误删了就在哪里执行。
PS:我每次用它的时候都切换了root,毕竟自己的虚拟机。
这个绝对时间用以下语句获得:
date +%s
下面介绍一下我的回收站:
基本思路就是把rm命令替换成mv,把文件移动到指定的文件夹里。这里我用了一个脚本来实现:
1、家目录下创建文件夹(貌似可不用)
mkdir .trash
2、家目录下编写脚本
.trash.sh
######################################
#!/bin/bash
datestr=$(date +%Y_%m_%d_%H_%M_%S)
mkdir -p ~/.trash/$datestr
mv $@ ~/.trash/$datestr/
######################################
说明一下,我是以删除的年、月、日、时、分、秒来做为文件夹名,这样在找回的时候比较方便。
3、家目录下.bashrc文件最后添加:
alias rm=~/.trash.sh
这样,我就做好回收站了。
这个回收站其实会有一些问题,比如使用rm的时候带 “-f”之类,会提示mv的错误;再比如,“删除”的文件多了,回收站占的空间就大了,文件实际还是存在的。这时候我都是在window下对其进行永久删除的,这里就要用到诸如WinSCP的软件了。