在Linux中观看文件中的更改

题:

有什么方法可以跟踪Linux中文件(例如,新文件/保存文件)的进度?

细节:

我知道inotify可用于跟踪整个文件夹的文件创建,删除和修改.但是,这些级别很低.文本编辑器通常在保存文件时,将修改后的缓冲区写入一个临时位置,然后移动它并覆盖原始文件.当我想要的是修改时,可以通过inotify将其视为创建和移动.

在我看来,每次保存文件都会被解释为新文件,这与我的直觉相反.我可以用来区分创建新文件和保存现有文件的文件的任何标识值吗?提出此问题的另一种方法是:“诸如BeagleSpotlightWindows SearchGoogle Desktop之类的程序如何解决此问题”?

目标:

这是描述我想要的一个好方法:使用Vim,如果我打开一个文件并保存(:w),该文件将被写入一个临时文件,然后移至原始文件,从而使inotify相信创建了一个全新的文件,然后用于覆盖原始文件.但是,如果将文件添加到Subversion(svn),然后使用Vim打开该文件并保存(:w),则svn会知道保存的文件实际上是修改后的文件,而不是新文件. svn如何知道这一点?

解决方法:

我将尝试解释在Linux中,新的或保存的外观是否相同.与Windows相比,Linux的一大区别是inode不存储文件创建时间,仅存储访问,修改(文件内容更改)和change(inode更改)时间.因此,除非您将信息保留在其他位置(例如,文件本身作为元数据保存在其他位置),否则您将无法确定文件是刚刚创建还是刚刚更改.

上一篇:Linux : 综合架构实时同步存储服务(sersync + rsync + inotify)--06


下一篇:php-如何使用HHVM监视文件更改?