【发布时间】:2016-03-27 10:44:46
【问题描述】:
我有一个目录 /home/my_username/my_directory
对于 my_directory 中的每个文件,我希望如果文件被更新,那么将生成旧版本和新版本之间的差异,然后将通知特定程序(我自己的程序)。
【问题讨论】:
-
您使用 Linux 中的 'inotify' 机制来执行此操作 - 但是如果您需要更多帮助,您应该指定您的编程语言。但是,人们不会为您编写整个程序。
-
@nos :我认为 inotify 只会在执行更新后通知我(因此我无法进行 diff),不是吗?
-
是的,因此您最好对应用程序进行编码,以便在更改原始文件时对其进行备份。 (或者只是将这些文件保存在版本控制系统中)
-
@nos :这是可能的,git 会这样做,除了“隐藏”文件仅在提交期间更新,但我需要两倍的存储大小。那么 Dropbox 是如何做到的呢?我很确定他们也“监听”文件系统事件,但是当文件更新时他们需要做差异。 Dropbox 是否也保留“旧副本”?
-
Dropbox 不提供对文件系统的低级读/写访问,并且 Dropbox 应用程序逻辑在覆盖底层文件系统的数据之前可能会发生差异。请注意,Dropbox 提供完整的修订历史记录,而不仅仅是与上一个版本的差异。
标签: linux io filesystems