我有一个庞大的目录,里面有各种各样的东西,从家庭照片到 git 存储库,再到包含数千个可见和隐藏文件的程序,这些文件在大约 10 台计算机上同步。为了使这个庞大的目录在所有这些计算机上保持同步,我不得不从 Dropbox 转移到 Nextcloud。
我发现在这次迁移中 Nextcloud 删除了大量文件,从隐藏文件到.tex
文件,应有尽有。我仍在尝试了解为什么会发生这种情况,并在相应的 Nextcloud 论坛上进行了询问,幸运的是,我有一份备份Dropbox目录。
所以...
鉴于我有这两个庞大而复杂的目录,其中包含数百万个文件,我如何从人的角度直观地比较它们,以了解 Nextcloud 造成的损害?我如何了解 Nextcloud 正在消除什么?
基本上,我需要一些大而清晰且直观的东西,就像gdmap
混合的那样tkdirdiff
。
我请求指导和建议。
答案1
当我从本地存储转移到 NAS 时,我也遇到了同样的情况:尺寸有差异我做了以下事情:
stat -c "%s %n" /media/Data/ > /tmp/DSK
stat -c "%s %n" /media/NAS/ > /tmp/NAS
分别列出所有文件的大小(%s
)和名称(%n
),然后加载DSK
并NAS
我最喜欢的编辑并从视觉上比较了两个文件。
就我而言,只有一个文件不同在我写这篇文章的时候它正在复制,但是在你的情况下你可能需要删除文件的目录名:
sed 's/\/media\/Data//g' /tmp/DSK > /tmp/DSK_Files
sed 's/\/media\/NAS//g' /tmp/NAS > /tmp/NAS_Files
并让 shell 找出差异:
diff --context=0 /tmp/DSK_Files /tmp/NAS_Files
答案2
答案3
对于数百万个文件,您确实不想对差异进行目视检查。meld 程序适用于较少数量的文件,但您应该考虑使用 sort 和 uniq 进行报告。从公共目录起点准备列表,以便路径相同(find . 将生成此类终止路径列表),将两个列表一起排序,并使用 uniq 报告非重复行。(确保所有 uniq 文件都来自一个列表,而不是混合在两个列表中)。决定如何将丢失的文件复制到另一个位置。