我有一个图像文件,并且我知道在某个目录或它的祖先之一中的某个地方有它的另一个副本,但它有一个不同的、未知的文件名,并且这个目录中有数千张图像。
我如何才能找到与我所知道的图像相同的文件名?
答案1
首先,找到所有具有完全相同文件大小的文件,然后进行二进制比较。
s=$(stat -c "%s" $file) #File size in bytes
for i in $(find $dir -size "${s}c"); do #by default, find expects sizes in blocks
if cmp "$i" "$file"; then
echo "$file and $i identical"
fi
done
答案2
使用命令行工具。在十六进制编辑器中打开已知图像,并在中间复制一些任意块。假设该块是“21310441125161320581C113F071B122”。然后使用 bgrep 在目录中搜索该块:
bgrep 21310441125161320581C113F071B122 images_directory