比较文件系统结构的差异?

4
在OSX或Linux中,我如何轻松比较路径Foo和路径Bar,并获取它们之间所有不同的文件和文件夹的列表?同时,获得两个路径之间总差异的KB数也很方便。
我的用例是想验证路径A是否完全复制到了路径B,我确定由于底层FS类型的不同,会有非常小的差异,因此我需要一个工具/脚本,能够做更多的事情而不仅仅告诉我“是”或“否”。

diff -qr dir1/ dir2/ 并且要获取以kb为单位的总差异数量,您需要使用 du -sh dir1 和 du -sh dir2 来了解大小差异。 - linux_fanatic
2个回答

2

如果您想将文件从文件夹A复制到文件夹B,您知道文件夹B可能会缺少文件(而不是文件夹A),那么您可以循环遍历文件夹A中的所有文件,并检查它们在文件夹B中是否具有相同的大小。例如:

#!/bin/bash

for file in `ls A`
do
    # check if file exists
    if [ -e B/"${file}" ]
    then
        fileSize1=`stat -c%s A/"${file}"`
        fileSize2=`stat -c%s B/"${file}"`
        if [ ${fileSize1} -ne ${fileSize2} ]
        then
            echo "The files ${file} have not the same size."
        fi
    else
        echo "The file ${file} does not exist."
    fi
done

当然,您必须小心处理子目录。

1
选项1
您可以简单地使用diff
diff -qr dir1 dir2

你还可以使用--exclude和其他许多选项进行操作。

选项2

你可以使用另一个GUI工具,比如Meld(或者在控制台上使用Midnight-Commander

来源:我在duckduckgo中找到的前两个答案。

相关:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接