你一定得认识到自己想往哪个方向发展,然后一定要对准那个方向出发,要马上。你再也浪费不起多一秒的时间了,你浪费不起。   ——塞林格《麦田里的守望者》


原理

vim编辑器中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果编辑文件时正常退出,则这个临时缓存文件会自动删除,如果终端意外关闭未正常退出,则这个临时缓存文件会被保存,用于记录上次文件修改信息。

index.php 为例:
第一次产生的交换文件名为 .index.php.swp
再次意外退出后,将会产生名为 .index.php.swo 的交换文件
第三次产生的交换文件则为 .index.php.swn
第四次产生的交换文件则为 .index.php.swm
依次类推…

因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容。恢复命令为:

1
vim -r index.php (自动搜索并使用临时文件来恢复index.php)

演示

我在编写flag文件时强制关闭终端不对文件进行保存,再次打开flag文件时出现提示:

例如,我在编写flag文件时强制关闭终端不对文件进行保存,再次打开flag文件时出现提示:
swp.jpg
查看.flag.swp文件可以看到我之前编写的内容:
flagswp.jpg

这个临时文件要及时删除,防止被黑客利用。在ctf赛题中,这也是会考察的一个点。

除此之外vim还会产生一个备份文件,例如index.php的备份文件为index.php~