我正在寻找可以比较目录和文件的内容,例如Beyond Compare在Windows中所做的。
它主要用于源代码控制,但我也需要将其用于部署。
我正在寻找可以比较目录和文件的内容,例如Beyond Compare在Windows中所做的。
它主要用于源代码控制,但我也需要将其用于部署。
Answers:
beyond compare
下文。优于
“超越比较”也可用于Linux。
检查他们的下载网址:http : //www.scootersoftware.com/download.php
受此博客条目的启发。
列出不同的文件:
diff -qr folder1 folder2
清单还内容:
diff -Naur folder1 folder2
如果两个目录不在同一台计算机上,则rsync
可能是最简单的解决方案。通常rsync
用于同步目录,但是您可以在冗长和干燥模式下运行它,因此它将仅列出需要更改的文件。
rsync -rvnc --delete folder1 server:/path/to/folder2
c
如果要基于时间戳和文件大小比较文件以加速所有操作,则可以省略:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader是一个免费工具(可从Software Center中获得),它可以比较显示文件夹内容,并且您可以与许多其他选项进行同步。您可以在同步和比较时进行过滤。
要比较文件内容,您只需标记两个文件,然后选择“文件”>“比较内容”,然后逐个字母地对它们进行比较。krusader使用的默认比较工具是默认的KDE工具“ Kompare ”。您可以将krusader设置为使用任何其他比较工具-例如上面的一种。
这是我找到的最完整的解决方案,非常方便。它支持午夜指挥官使用的所有功能keybindungs(诺顿指挥官语法)。
我两周前了解了hashdeep。它具有一些强大的优势:
meld
,它适用于非常大的文件夹。在meld
变得极其缓慢且用户界面无响应(阻塞)的地方,哈希深度只能以恒定的速度工作rsync
,hashdeep会检测到移动的文件-内容相同但位于不同目录中的文件。详细输出如下:
...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 6233
Files partially matched: 0
Files moved: 3695
New files found: 19257
Known files not found: 4713
进行此比较的一个好方法是使用“ find ”和“ md5sum ”,然后使用“ diff ”。
例:
使用find列出目录中的所有文件,然后为每个文件计算md5哈希并将其通过管道传输到文件:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
对另一个目录执行相同的过程:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
然后将结果两个文件与“ diff”进行比较:
$diff dir1.txt dir2.txt
当要比较的两个目录不在同一台计算机上并且您需要确保两个目录中的文件相等时,此策略非常有用。
完成这项工作的另一个好方法是使用git
git diff --no-index dir1/ dir2/
最好的祝福!
也尝试FreeFileSync。它具有良好的界面,可接受的比较速度,对比较结果的良好过滤,不同的同步方式。它带有一个文件夹监视工具(RealTimeSync),当特定的一个或多个文件夹或其中的文件发生更改时,该工具可以启动FreeFileSync(实际上是任何命令或脚本)。真的值得一试。
在他们的页面上,主要功能:
比较文件(按字节或按日期)并进行同步。
无限制:可以同步任意数量的文件。
Unicode支持。
网络支持。
内置支持非常长的文件名(超过MAX_PATH = 260个字符)。
同步数据库,用于传播已删除的文件和检测冲突
支持具有不同配置的多个文件夹对
完全支持Windows / Linux符号链接和Windows连接点。
精简且易于访问的UI:针对速度和大量数据进行了高度优化。
完全用C ++编码的算法。
所有进度指示器均经过优化,以实现最佳性能!
创建批处理作业以使用或不使用GUI进行自动同步。
专注于可用性:
UI上仅必要的功能:没有重载的菜单或图标丛林。
通过拖放选择所有文件夹。
上次使用的配置和屏幕设置将自动保存。
通过拖放,加载按钮或命令行维护和加载不同的配置。
双击以启动外部应用程序(例如Windows资源管理器中的显示文件)
复制并粘贴所有网格数据为文本
直接在主网格上删除多余的/临时的文件。
右键单击上下文菜单。
全面的状态信息和错误报告
按名称,大小或日期对文件列表进行排序。
对文件大小的支持大于4 GB。
选择将文件移动到回收站,而不是删除/覆盖它们。
使用默认过滤器忽略目录“ \ RECYCLER”和“ \ System Volume Information”。(仅Windows)
本地化版本适用于多种语言。
复制前删除:避免大型同步作业的光盘空间不足。
筛选功能以包括/排除文件同步(无需重新比较!)。
临时从同步中包括/排除特定文件。
自动处理FAT / FAT32卷上的夏令时更改。
提供便携式版本(可通过安装程序选择)。
本机64位版本。
从FreeFileSync自动检查更新。
使用Windows卷影复制服务复制锁定的文件。(仅Windows)
使用目录名称中的宏%time%,%date%创建常规备份
同步时复制文件和文件夹的创建/访问/修改时间
先进的锁定策略可允许多个同步过程(例如,多个编写者,相同的网络共享)
我要添加它可以管理已删除的文件,将它们移到“废纸rash”或用户指定的文件夹中。指出一个缺点:程序文档将重点放在Windows上,而不是Linux。但它做得很好。
您可以使用diffuse:
sudo apt-get install diffuse
diffuse file1 file2
恕我直言,FreeFileSync非常好,比Meld更有用。它快速且稳定,可以进行可定制的同步,还可以将比较结果导出到csv文件中。
跨平台,简单,轻松和配置文件保存功能使Jfilesync成为我的首选
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
您可以使用以下命令cmp
:
cmp -b "File_1.txt" "File_2.txt"
输出将是
a b differ: byte 11, line 2 is 62 2 40
您可以使用diff命令:
diff -r --brief dir1 dir2
man diff
-r, --recursive
recursively compare any subdirectories found
-q, --brief
report only when files differ