我有两个目录 - 一个来自早期备份,第二个来自最新备份。如何比较 Linux 上最新备份对目录中文件所做的更改?另外,我如何显示例如文本和 php 文件中的更改-我正在考虑诸如维基百科上的修订历史之类的东西,您可以在屏幕的一侧看到旧版本,而在另一侧看到最新版本,并且突出显示了更改。我如何实现这样的目标?
编辑:我如何将远程目录与本地目录进行比较?
我有两个目录 - 一个来自早期备份,第二个来自最新备份。如何比较 Linux 上最新备份对目录中文件所做的更改?另外,我如何显示例如文本和 php 文件中的更改-我正在考虑诸如维基百科上的修订历史之类的东西,您可以在屏幕的一侧看到旧版本,而在另一侧看到最新版本,并且突出显示了更改。我如何实现这样的目标?
编辑:我如何将远程目录与本地目录进行比较?
从差异手册页:
所以要比较目录:
diff --brief -r dir1 dir2
要并排比较文件:
diff --side-by-side file1 file2
假设:
www1
,与远程比较www2
www1
到远程的公共 ssh 密钥身份验证www2
www1
我们在本地和远程上作为同一用户进行比较www2
您真的想将
rsync
减少带宽消耗的功能与diff
为您提供灵活、嗯差异的功能相结合。所以是这样的:
rsync
我想如果您经常使用它而不是在第一行中使用它,您可以稍微调整一下cp
- 显然在最后一行中您可以根据自己的diff
喜好进行格式化。在 OPs 案例中可能有 y这种方法的缺点是你最终使用了两倍的本地空间,但低于 1 美元/演出谁在乎呢?
在同一台服务器上做
diff old_dir new_dir > diff.txt
并排差异。对于远程文件:
例如:ABC 是现有服务器,XYZ 是您的远程服务器,目录名称是 123。
步骤 1:将 ABC 服务器上的现有目录 123 重命名为 123_ABC。
步骤 2:在服务器 ABC 上创建一个新目录:
第 3 步:将 XYZ 服务器上的目录 123 中的所有文件复制到 ABC 服务器上的 123_XYZ 目录:
这会将所有文件从 XYZ 服务器上的目录复制到 ABC 服务器/123_XYZ 目录。
步骤:4:做两个目录之间的差异:
现在转到 ABC 服务器并执行 123_ABC 和 123_XYZ 之间的差异
上面的命令会将差异结果保存到相同路径的 diff.txt 中。
然后你可以比较差异。
谢谢,
梅胡尔
AIDE高级入侵检测环境 (AIDE) 是用于 UNIX 操作系统的文件完整性检查器。其目的是提供有关受支持文件系统上数据完整性的报告。通过在目标主机上多次运行 AIDE,您可以确定哪些文件正在更改。通过在不同主机上多次运行 AIDE,您可以确定哪些文件和权限不同。然后对报告的“不同”文件使用 gui diff 工具。
或者使用 gui diff 工具,如 meld、guiffy、kdiff3、diff、vimdiff、gvimdiff、Emacs、Kompare、Diffuse、Easydiff、TkDiff 或 xxdiff。除了文件差异之外,大多数人还会做目录差异。正如其他人所提到的,您需要使用 NFS、SMBFS 或 SSHFS 安装远程驱动器。
或者,您可以将两个文件与文件列表的输出一起使用。然后比较这两个文件。例如:
下载其中一个文件。
文件.TXT
使用 diff (
diff -y remote-files local-files > diff-files
) 并排比较它们。打开差异文件并检查它。带有 > 的每一行表示一个不同的文件。