问题描述
我正在寻找能够比较像Beyond Compare for windows这样的目录和文件的东西。
它主要用于源代码控制,但我也需要将其用于部署。
最佳解决办法
Meld
Meld是一个可以比较和合并文件和目录的工具。它是标准diff
和patch
命令行工具的GUI模拟。 (有关这些的更多详细信息,请参阅man diff和man patch)
此外,许多源代码管理系统(如bzr
或git
)可以在不同版本之间创建差异。
次佳解决办法
差异是你的朋友。
diff -ur path1 path2
这将比较path1和path2之间的所有文件。
如果将-ur
更改为-urN
,那么它也将显示仅存在于其中一个路径中的文件的内容。
第三种解决办法
‘Beyond Compare’也可用于Linux。
检查他们的下载网址:http://www.scootersoftware.com/download.php
第四种办法
使用diff
命令:
diff -u file1 file2
diff -u
选择具有几行上下文的格式。一个普通的diff file1 file2
只列出不同的行。还有很多选项可以控制输出格式,忽略whitespace-only差异等。
如果您想将输出写入文件,请重定向它:
diff -u file1 file2 >file1-file2.diff
第五种办法
界面可能不是真正的性感,但它非常强大!
如果你习惯了其他*指挥官(如诺顿或喜欢),你不会迷路。
第六种办法
命令行工具
灵感来自this blog entry。
diff
列出不同的文件:
diff -qr folder1 folder2
清单还包含内容:
diff -Naur folder1 folder2
rsync
如果这两个目录不在同一台计算机上,rsync
可能是最简单的解决方案。通常rsync
用于同步目录,但可以在详细和干燥模式下运行它,因此它只会列出必须更改的文件。
rsync -rvnc --delete folder1 server:/path/to/folder2
如果您想根据时间戳和文件大小比较文件以加快速度,可以省略c
:
rsync -rvn --delete folder1 server:/path/to/folder2
第七种办法
Krusader
Krusader是一个免费工具(可在软件中心获得),比较显示文件夹内容,您可以同步许多不同的选项。您可以在进行同步和比较时进行过滤。
要比较文件内容,只需标记两个文件,选择”file”> “compare content”,并以字母为单位进行比较。 krusader使用的默认比较工具是默认的KDE工具”Kompare”。您可以将krusader设置为使用任何其他比较工具 – 例如上面的其中一个。
这是我找到的最完整的解决方案,非常方便。它支持午夜指挥官使用的所有功能keybindungs(诺顿指挥官语法)。
第八种办法
KDiff3
这是一个图形front-end来区分KDE用户(或者如果您不介意使用Qt应用程序)。
目录也有dirdiff。
第九种办法
第十种办法
Unison是一款使用rsync算法的快速文件同步工具,可以在两个位置之间进行更新之前预览差异,无论它们是远程还是本地。