如何查找两个磁盘结构之间丢失的目录?
- 假设磁盘 A 有 dir
A/
,B/
,C/
,D/
。(较新的副本) - 假设磁盘 B 有 dir
A/
,B/
,D/
,E/
。(旧副本)
我想找出与旧副本相比,新副本中缺少哪些目录。
结果:“Dir E”。
我怎样才能做到这一点?我不想要任何有关文件的报告。
这可以仅创建特定目标中缺少的目录:
find -type d -exec mkdir -p "/mnt/pics/Albums/{}" \;
更新:我的问题中建议的文章是关于内容而不是文件夹。此外,没有提出明确的解决方案作为“diff -rq path1 path2”的答案。
diff
允许比较目录内容。用于-r
递归遍历子目录并-q
仅报告差异:例如:
请注意,这还会比较文件的相同内容!
一个相当方便的图形工具是
meld
. 它可以在许多 Linux 发行版的存储库中找到。您只需提供要比较的目录路径,如下所示
它将显示一个拆分树视图,指示哪些文件/目录仅存在于其中一个路径中,并且如果两个路径中都存在文件,则表明两个路径中的哪一个具有更新的时间戳。
通过
bash
,您可以使用:这将按字母顺序递归列出 和 中的目录,并将这些列表与
dir1
进行比较。dir2
diff