任何 diff/grep 实用程序都可以执行“文件 grep”吗?

任何 diff/grep 实用程序都可以执行“文件 grep”吗?

可能重复:
重复文件查找器

...继续标题,基本上我想要的是让我给他文件,然后程序遍历整个项目目录并寻找是否有任何文件(它们的名称自然都不同:)与第一个二进制相同...

在某种程度上,它们是不同的,但我不想自己浏览项目目录,因为它们太多了。

答案1

抱歉,发帖前没有看到操作系统标签。但使用 Cygwin 或 UnxUtils 也可以在 Windows 上使用。

以下命令计算项目目录中所有文件的 MD5 校验和,并显示具有相同校验和的文件作为参考文件:

find /path/to/project -type f -exec md5sum {} \; | grep $( md5sum /path/to/reference/file | cut -c1-32 ) | cut -c35-

cut命令用于从的输出中提取 32 个字符的校验和( -c1-32)和文件名称) 。(-c35-md5sum

答案2

这在 Ubuntu 11.10 上有效:

#!/bin/bash
IFS="
"
for file in $(find $2 -type f)
do
    diff -s "$1" "$file" | grep "identical$"
done

bash它应该可以在任何具有、find和的发行版上运行diff

$ ./recursive_diff.sh 2.gif Pictures/
Files 2.gif and Pictures/qzhm4k.gif are identical

相关内容