目录内容比较器按文件内容,忽略名称

目录内容比较器按文件内容,忽略名称

是否有一个实用程序可以仅通过文件内容来比较目录的内容?

我有两组文件,其中大多数二进制相同,但有些不同;但即使内容匹配,一对文件中的每个文件都有不同的名称。

是否有一种工具可以根据实际文件内容比较目录内容并且不需要文件名匹配?

我使用 Windows,但也对 GNU/Linux 工具感兴趣。

答案1

这可能会有用,我遇到了一些麻烦,但我已经投入了足够的时间,值得分享,以防它能帮助别人。

一些注意事项:Get-FileHash需要 Powershell 4。这不会对递归执行任何操作。

$left = dir .\leftDir\* | Get-FileHash -Algorithm MD5
$right = dir .\rightDir\* | Get-FileHash -Algorithm MD5
$leftOnly = compare -passthru ($left | select hash) ($right | select hash)
$rightOnly = compare -passthru ($right | select hash) ($left | select hash)

echo "Print left only files"
foreach ($l in $leftOnly)
{
    foreach ($file in $left)
    {
        if ($file.Hash -eq $l.Hash) { echo $file.Path }
    }
}

echo ""

echo "Print right only files"
foreach ($r in $rightOnly)
{
    foreach ($file in $right)
    {
        if ($file.Hash -eq $r.Hash) { echo $file.Path }
    }
}

相关内容