我用了
cat > filename
趁着还没想清楚,然后按下 ctrl + c,很自然地,文件就变成空了......有没有办法恢复该文件的内容?
答案1
理论上是的。
如果你真的很幸运,新数据没有写入到你原始文件存储的物理块上,并且你知道文件中包含的字符串模式,并且你有一个可以启动的实时/救援媒体或另一台可以将磁盘连接到的机器,
然后,您可以创建分区的映像或直接使用某些二进制(安全)编辑器(例如 vim)或查看器(例如 mcview)打开 /dev/xxxx 文件并在映像/磁盘中查找字符串模式。
可能,条件会告诉你一些关于几率的信息,而“寻找”过程会让你猜测这需要花费多少时间。我以前也遇到过这种情况。
答案2
您是否恰好有另一个进程打开了该文件?如果是,也许他们已将其映射到内存中,您可以从那里恢复内容。否则,您可以找到其他答案这里。
要查明某个进程是否已打开它,您可以尝试查看procfs
,如下所示:ls -l /proc/*/fd/* | grep $FILENAME
。或者您可以使用fuser
。祝您好运!