Linux 系统如何侦听文件更改?

Linux 系统如何侦听文件更改?,linux,node.js,operating-system,filesystems,Linux,Node.js,Operating System,Filesystems,在OS级别,它如何实现知道某些内容发生了更改(如文件更改) e、 g: 在节点中,我们可以监视文件并在其更改时执行某些操作 fs.watch(file_path,function(){ //do something while the file's changed; }); 有人能给我一个简单的直觉/想法/关于它是如何工作的关键字吗 我能想到的一点是,当我在vim中点击:w时,它会以某种方式调用一些系统*fake\u save\u file*函数,在这个*fake\u save\u fil

OS级别,它如何实现知道某些内容发生了更改(如文件更改)

e、 g:
在节点中,我们可以监视文件并在其更改时执行某些操作

fs.watch(file_path,function(){
  //do something while the file's changed;
});
有人能给我一个简单的直觉/想法/关于它是如何工作的关键字吗


我能想到的一点是,当我在vim中点击
:w时,它会以某种方式调用一些系统*fake\u save\u file*函数,在这个*fake\u save\u file*函数中,它会将一些事件发送到其他地方,这可能是您想要的。请检查它。

您可能知道内核将文件系统中的文件作为文件描述符进行索引。文件监视是通过监听对这些文件描述符的更改来实现的。在linux中就是这样

无论何时打开、读取、写入/修改或移动文件,内核都会对文件描述符进行操作。Inotify通过跟踪这些操作并向您展示来扩展文件系统

你举的例子有点不正确。伪_save_文件由文本编辑器vim创建,用于存储临时更改,除非用户实际保存它。使用
:w
保存时,编辑器会将实际的\u save\u文件替换为伪\u save\u文件的副本

作为一个用户,您将观看实际的_save_文件。当您在vim中输入
:w
时,这会发生更改。当vim修改其内容时,您将收到通知。

Linux提供了可用于实现该功能的工具。