我有两个目录 – 一个来自较早的备份,另一个来自最新的备份。 我如何比较Linux上最新备份对目录中的文件所做的更改? 另外我如何显示例如文本和PHP文件的变化 – 我在想维基百科上的修订历史的东西,你在屏幕的一侧看到旧版本和其他最新版本,突出显示的变化。 我如何实现这样的事情?
编辑:我怎么也比较远程目录与本地?
从差异手册页:
如果源文件和目标文件都是目录,则diff按字母顺序比较两个目录中的相应文件; 除非给出-r或–recursive选项,否则此比较不是recursion的。 diff不会将目录的实际内容与文件进行比较。 完全指定的文件可能不是标准input,因为标准input是无名的,“'具有相同名称的文件'的概念不适用。
所以比较目录: diff --brief -r dir1 dir2
并排比较文件: diff --side-by-side file1 file2
假设:
www1
,比较远程www2
www1
到远程www2
有公钥authentication www1
和远程www2
上的相同用户 find / var / www / html / -name“*”-exec md5sum -b {} \; | grep -v“/ var / www / html / exclude_this dir”> local.md5 ssh www2“find / var / www / html / -name'*'-exec md5sum -b {} \ | | grep -v / var / www / html / exclude_this dir> remote.md5” scp www2:remote.md5。 diff local.md5 remote.md5
你真的想要结合rsync
的强大function来减less带宽消耗与diff
的力量,给你灵活,很好的差异。
所以像这样的东西:
cp -R $local $bak rsync $server:$remdir/* $local/ rsync $local/ $server:$remdir/* diff -wur $local $bak
我想你可以调整这一点,如果你这样做经常使用rsync
而不是cp
在第一行 – 显然在最后一行,你有完全的diff
力量来格式化,但是你喜欢。 可能在OP的情况下是y
这种方法的缺点是你最终使用了两倍的本地空间,但低于$ 1 / gig谁在乎?
在同一台服务器上执行diff old_dir new_dir > diff.txt
并排的区别。
对于远程文件:
例如:ABC是现有的服务器,XYZ是您的远程服务器,目录名称是123。
步骤1:将ABC服务器上的现有目录123重命名为123_ABC。
ABC:/Home > mv 123 123_ABC
步骤2:在服务器ABC上创build一个新目录:
ABC: > mkdir 123_XYZ
步骤3:将所有文件从XYZ服务器上的目录123复制到ABC服务器上的123_XYZ目录:
XYZ/123 > scp * userid@ABC: /123_XYZ
这将从XYZ服务器上的目录复制所有文件到您的ABC服务器/ 123_XYZ目录。
步骤:4:在两个目录之间做差异:
现在转到ABC服务器,执行123_ABC和123_XYZ之间的差异
ABC > diff 123_ABC 123_XYZ > diff.txt
上面的命令会将diff结果保存到diff.txt中相同的path中。
那么你可以比较差异。
谢谢,
MEHUL
AIDE高级入侵检测环境(AIDE)是UNIX操作系统的文件完整性检查程序。 其目的是提供关于支持文件系统上数据完整性的报告。 通过在目标主机上多次运行AIDE,您可以确定哪些文件正在更改。 通过在不同的主机上多次运行AIDE,您可以确定哪些文件和权限是不同的。 然后在报告的“不同”文件上使用gui diff工具。
或者使用guld diff工具,比如meld,guiffy,kdiff3,diff,vimdiff,gvimdiff,Emacs,Kompare,Diffuse,Easydiff,TkDiff或者xxdiff。 除文件差异之外,大多数会做目录差异。 您需要使用NFS,SMBFS或SSHFS挂载远程驱动器,如其他人所述。
或者你可以使用两个文件与输出的文件列表。 然后比较这两个文件。 例如:
/path/to/compare/remote$: ls > remote-files /path/to/compare/local$: ls > local-files
下载其中一个文件。
-rw-r - r-- 1 1015 1015 26624 2005-06-14 13:10 FILE.TXT
到FILE.TXT
使用diff( diff -y remote-files local-files > diff-files
)将它们并排比较。 打开diff文件并检查它。 每行与>意味着一个不同的文件。