是什么导致创建交换文件?


31

作为编写程序的一部分,我不断从文件中读取和写入数据。我注意到,在这样做的过程中,我无意间创建了交换.swp文件。

您认为这是怎么回事?如果必须重现此问题,将导致出现交换文件的原因?

Answers:


41

从操作系统的角度来讲,.swp文件不是交换文件。这是一个状态文件。自上次保存以来(后200个字符除外),保存的缓冲区,未保存的宏和撤消结构,它将保留您的更改。

您可以在VIM的帮助中了解更多信息:vim +help\ swap-file。如果发生崩溃(电源故障,操作系统崩溃等),则可以使用此交换文件恢复更改。将交换文件中的更改保存到原始文件后,您需要退出vim并自己删除交换文件。


由于某种原因,我的〜/ .swp文件为11.7GB。我刚刚删除了它。
张敬轩

19

.swp文件是由Vim创建的,当您关闭文件并退出编辑器时,应将它们自动删除。


1
可以从外部创建它们Vim吗?在我的情况下,无需使用编辑器即可直接从程序中编写文件
JAM

@JAM:这个程序用什么语言和库编写?
jwodder 2011年

5
@JAM通常不,它是Vim的功能。我怀疑这些文件是在不知不觉中直接从您的程序中写入的,这没有任何意义。您很可能会感到困惑,在使用Vim编辑文件时会创建这些文件,并将它们归因于程序。
朱利诺

4

.swp文件不过是一种锁定文件,您可以通过编辑器(通常是vim)创建该锁定文件,以指示该文件正在被编辑。这样,如果您在另一个vim实例中打开文件(如果网络中有人这样做的话),他们将看到警告,表明文件正在编辑中。
您无需手动删除它们。在编辑器中关闭交换文件后,您的编辑器将删除该文件。


2

我刚刚在31GB的文件上执行了mv命令,并创建了13GB的.swp文件,无需进行任何编辑。

mv X.csv Y.csv 创建了Y.csv和.Y.csv.swp

CentOS 6.5,ext4文件系统


谢谢。您是否也有过使用'rsync'的类似经历?
入狱
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.