vim/vi/nano/etc 是否锁定文件被写入?

kem*_*102 2 text-editor

正如标题所暗示的那样,我的同事断言使用文本编辑器而不是解析器(例如less)会锁定文件,并且在日志文件的情况下使其无法写入日志文件。

我以前从未听说过这个,只是一些初步测试发现情况并非如此。此外,我在谷歌搜索中找不到任何关于这方面的信息,以表明他可能从哪里得到这个想法。

小智 5

vim 不这样做,但我不确定其他人。但是,有一种非常简单的方法可以检查这一点:

打开两个终端窗口(konsole、gnome-terminal 等),并在第一个控制台中运行以下命令:

touch ~/test.txt
vim ~/test.txt
Run Code Online (Sandbox Code Playgroud)

现在,在您的第二个控制台中,键入以下内容:

echo "This is a test" >> ~/test.txt
Run Code Online (Sandbox Code Playgroud)

如果文件被 vim 锁定,您在第二个控制台中的命令将失败,因为该文件无法写入。它不会失败。在第一个控制台中使用您想要的任何编辑器作为步骤 #2 重复。

显然,如果您尝试在第一个控制台中保存任何更改,您就会进入未知领域,但就附加到日志文件而言,这是安全的。

一些编辑器,如vim、gedit 等,在打开文件时会创建一个“影子”文件,表示该文件在编辑器中打开。这不是锁定,并且对您系统上的其他应用程序没有任何作用 - 它只是让编辑器知道文件已打开的一种方式。