You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shell中恢复因sed误操作清空的ex1.f95文件?

如何恢复被误操作清空的ex1.f95文件?

哎呀,这可是Shell操作里很容易踩的坑!你执行的sed "s/y_parameter/y/g" > ex1.f95命令漏掉了输入文件,Shell的重定向>会先把目标文件(也就是ex1.f95)截断清空,再等待写入内容,可sed没收到任何输入,最后就留下了一个空文件。

下面是一些可能帮你恢复原文件的方法:

  • 立刻停止对该分区的写入操作:别再往这个文件所在的磁盘分区里存东西了!新写入的数据很可能覆盖原文件残留的内容,让恢复变得更难。
  • 利用编辑器的交换文件恢复:如果你之前用vim之类的编辑器打开过这个文件,大概率会生成一个交换文件(比如.ex1.f95.swp)。可以试试在终端执行vim -r ex1.f95,按照提示恢复交换文件里的内容。
  • 使用专业文件恢复工具:
    • testdisk:这是个开源的强大工具,能扫描磁盘分区,找回被误删或覆盖的文件。安装后运行testdisk,跟着向导选择对应的磁盘和分区,然后搜索丢失的文件,找到ex1.f95的旧版本后恢复即可。
    • photorec:和testdisk是一套的,它不依赖文件名,专注恢复文件内容,哪怕原文件的inode信息被破坏,也能尝试提取文本类文件的内容。
    • extundelete:如果你的系统用的是ext系列文件系统(比如ext4),这个工具可以扫描分区的inode日志,尝试恢复被截断的文件。

以后怎么避免这种问题?

要直接修改原文件的sed命令,记得加上-i参数(原地编辑):

sed -i "s/y_parameter/y/g" ex1.f95

或者更稳妥的方式:先把修改后的内容输出到临时文件,确认没问题再替换原文件,这样即使命令出错也不会损坏原文件:

sed "s/y_parameter/y/g" ex1.f95 > ex1.tmp && mv ex1.tmp ex1.f95

内容的提问来源于stack exchange,提问作者tupoliedro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:08:48