如何最好地比较巨大的目录树

jde*_*aan 7 windows linux comparison snapshot

如何比较巨大的目录树?

我在想一个免费的工具来制作文件系统结构的快照(文件和目录的列表,它们的大小和时间戳)将是理想的,所以我可以将快照与以后制作的另一个快照进行比较。

Treecomp对此非常有用,但是对于一棵巨大的树(我的意思是非常大!)它会崩溃,因为它试图将其保留在内存中(4GB 的内存是不够的)...

我通过将快照分成几部分并比较这些部分来解决这个问题。但这很乏味,问题肯定会得到更好的解决。

有没有其他免费(最好也是开源的)工具可以试用?还是有另一种方法可以做到这一点,我忽略了?

操作系统可以是 Linux 或 Windows。

mon*_*y_p 8

你可以在终端中使用

du -a
Run Code Online (Sandbox Code Playgroud)

这将返回所有子文件夹中的所有文件,包括大小,然后比较文件

将数据保存到文本文件

du -a > dump.txt
Run Code Online (Sandbox Code Playgroud)

然后你可以使用类似diff 的东西来比较文件

这是针对 linux 的 :D


小智 5

这是我用来比较非常大的目录树的方法:

rsync --archive --dry-run --verbose /src/directory/ /dst/directory/
Run Code Online (Sandbox Code Playgroud)


T. *_*kar 2

我将尝试扩展一下如何使用Total Commander来完成此操作(我希望我理解您想要做什么)。

  • 安装DiskDir packer 插件(我放置了插件的直接链接,如果您愿意,可以转到插件页面并查找 DiskDir 插件
  • 安装插件后,使用 Alt+F5“打包”要跟踪更改的目录,然后从对话框 Packer 部分的下拉列表中选择“lst”;这将创建一个“包”,您可以按 Enter 键进入该包,就像您输入一个目录一样,它将显示该目录的完整内容
  • 比较结果时,转到左侧窗格中的原始目录,并在右侧窗格中输入所需的快照
  • 使用命令菜单中的“同步目录”功能
  • 在“同步目录”窗口中取消选中“按内容比较”,选中“子目录”和“忽略日期”(如果更改的日期很重要,则不选中)并运行比较
  • 窗口将显示相同的文件(在本例中不是按内容,仅按大小)、不同的文件以及左侧/右侧缺少的文件

由于快照是纯文本文件,并且您不按内容进行比较,因此它应该很快,但我从未将其用于真正巨大的目录。

如果您不进行备份而只想制作目录内容在某个时刻的快照,这非常有用。如果您确实进行备份,则可以使用相同的工具(同步目录)来按内容进行比较。

还有一个扩展版本的 DiskDir 插件,下载链接在第一篇文章中。此版本使您能够将包(如 zip、7z...)显示为快照中的目录。这当然会增加制作快照的时间。