跟踪文件系统(文件夹/文件)状态并保存它们。

4
我正在寻找一种跟踪文件夹、子文件夹和文件变化的方法,不需要实时监测,只需定期检查。 基本上,我想知道哪些文件夹/文件在上次查看后已更改或删除。 一个简单的解决方案是复制整个文件夹/文件,然后在需要了解更改情况时进行比较。我可以触摸这些文件,使其不占用任何空间,并查看文件日期以确定是否已更改。但这似乎不是一个好的选择。 这将在Linux系统上进行。我将监视的文件系统已被挂载(超出我的控制范围),但另一个文件系统则在我控制之下,如果有人想到某些特定的文件系统技巧的话,请分享。 有好的解决方案吗?

你可以使用带有-mtime标志的find命令。例如,查找在过去24小时内修改的所有文件将是:find /directory/or/mount/point -mtime 1。查找已删除的文件会更加困难。这是为了什么目的?你是想备份文件吗? - Jason Heithoff
不,我不是在尝试备份文件。我想知道对文件系统(文件夹/文件)做了什么,这样我就可以对另一个副本的文件系统做同样的操作。 - AxAn
你对所使用的文件系统有控制权吗?你所要求的几乎正是像ZFS快照这样的功能可以轻松实现的。 - Andrew Henle
我认为快照对我没有帮助,因为我想浏览已更改的内容列表,并根据某些规则应用或不应用它。 - AxAn
1个回答

1
Git似乎是一个不错的解决方案。您可以跟踪更改,回到文件的不同版本,创建分支,并获取任何提交的差异以了解文件的当前状态。
您可以参加免费课程以开始学习。

https://www.codeschool.com/learn/git

您可以进入想要跟踪的文件夹。然后使用以下命令初始化文件夹:

git init

添加所有文件和文件夹:

git add .

提交更改:

git commit -m "一些信息"

查看更改后的文件:

git status

添加新更改的文件:

git add "您更改的文件"

然后进行提交:

git commit -m "一些信息"


我应该更清楚一些:我将要监视的文件系统可能是只读的,即使可能可以这样做,我也不想在其中添加任何文件,因此在该文件夹中使用git将无法工作。 - AxAn
虽然可能有更好的解决方案,但您可以尝试使用rsync将所有项目复制到本地系统。然后,您可以使用--itemize-changes选项运行rsync以获取远程和本地之间的差异。使用-n选项不进行同步。请参阅以下链接:http://serverfault.com/questions/618735/can-i-use-rsync-to-create-a-list-of-only-changed-files 和 https://dev59.com/OWox5IYBdhLWcg3wnViy - aowen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接