题:
有什么方法可以跟踪Linux中文件(例如,新文件/保存文件)的进度?
细节:
我知道inotify可用于跟踪整个文件夹的文件创建,删除和修改.但是,这些级别很低.文本编辑器通常在保存文件时,将修改后的缓冲区写入一个临时位置,然后移动它并覆盖原始文件.当我想要的是修改时,可以通过inotify将其视为创建和移动.
在我看来,每次保存文件都会被解释为新文件,这与我的直觉相反.我可以用来区分创建新文件和保存现有文件的文件的任何标识值吗?提出此问题的另一种方法是:“诸如Beagle、Spotlight、Windows Search和Google Desktop之类的程序如何解决此问题”?
目标:
这是描述我想要的一个好方法:使用Vim,如果我打开一个文件并保存(:w),该文件将被写入一个临时文件,然后移至原始文件,从而使inotify相信创建了一个全新的文件,然后用于覆盖原始文件.但是,如果将文件添加到Subversion(svn),然后使用Vim打开该文件并保存(:w),则svn会知道保存的文件实际上是修改后的文件,而不是新文件. svn如何知道这一点?
解决方法:
我将尝试解释在Linux中,新的或保存的外观是否相同.与Windows相比,Linux的一大区别是inode不存储文件创建时间,仅存储访问,修改(文件内容更改)和change(inode更改)时间.因此,除非您将信息保留在其他位置(例如,文件本身作为元数据保存在其他位置),否则您将无法确定文件是刚刚创建还是刚刚更改.