问题:
在Linux中,有没有办法跟踪文件的进度(例如新文件/保存文件)?
详情:
我知道inotify可以用于跟踪整个文件夹的创建、删除和修改。但是,这些都是非常低级别的操作。文本编辑器通常在保存文件时,会将修改后的缓冲区写入临时位置,然后移动它并覆盖原始文件。这将被inotify视为CREATE
和MOVE
,但我想要的是MODIFY
。
对我来说,每次保存文件时它都被视为新文件似乎是不合理的。有没有一个可以用来区分新建文件和保存现有文件的标识值?另一种提问方式是:“诸如Beagle、Spotlight、Windows Search和Google Desktop等程序是如何解决这个问题的?”
目标:
这里有一个很好的方式来描述我的需求:使用 Vim
,如果我打开一个文件并保存它(:w
),那么该文件将被写入临时文件,然后移动到原始文件,欺骗 inotify
认为创建了一个全新的文件,然后用它来覆盖原始文件。但是,如果我使用 svn
添加一个文件,然后使用 Vim
打开并保存该文件(:w
),svn
将知道保存的文件实际上是修改过的文件而不是新文件。那么,svn
是如何知道这一点的呢?
cp a.txt a.txt~; rm a.txt; cp a.txt~ a.txt
,会怎样呢?你能想到任何解决方法吗? - puk