Linux下.swp文件的误删,如何实现原始文件的内容恢复

  1. .swp简介

vim中的swp即swap(交换分区)的简写,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

如果文件正常退出,则此文件自动删除。

如果并没有对文件进行修改,而只是读取文件,是不会产生swp文件的

  1. .swp的产生

1.当你用多个程序编辑同一个文件时

#解决方法:

选择readonly

2.非常规退出时

当强行关闭vi时,比如电源突然断掉或者你使用了Ctrl+ZZ,vi自动生成一个.swp文件,下次再编辑时就会出现一些提示。

#解决方法:

如果你正常退出,那么这个这个swp文件将会自动删除(vim编辑器要正常退出可以使用Shift-ZZ)。

vim -r test.conf 

来恢复文件。

当输入该命令后出现如下提示:

解决方法:

注意:

注意:

注意:

现在可不能推出,必须先去出入R,进行数据恢复,才能将.swp文件删除,好多人都没有恢复,直接看到上图的提示信息,就选择q来退出,然后找网上的博客看到直接让删除.swp文件就可以了,这样做的话,你就费费了,但是,不是彻底费费了。

  1. 解决原始文件内容为空,然后还将交换文件(.swp)删除,恢复原始文件内容的问题。

原理是:使用 路径下的 swp 临时文件进行恢复, swp文件是隐藏文件,结合lsof恢复数据

lsof | grep deleted : 列出当前系统已打开文件,但是deleted的状态

cp /proc/11230/fd/4 .xxxx.swp用下命令将删除的数据恢复到.myfile里,注意加点,是一个隐藏文件,此时打开文件是乱码;xxxx同名的.xxxx.swp文件

11230是进程号;4也不是固定值,是lsof | grep deleted查来的第四列,就是文件描述的值。

恢复方法如下:

1、ls -a查看隐藏文件,会发现多了一个文件:例如.xxxx.swp

2、用vi带-r参数来恢复:vi -r xxxx ,然后保存

3、删除 ..xxxx.swp文件即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值