![使用 md5 文件恢复文件名](https://linux22.com/image/10859/%E4%BD%BF%E7%94%A8%20md5%20%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E6%96%87%E4%BB%B6%E5%90%8D.png)
我从硬盘恢复了一些文件,但名称已更改。另外,我发现了恢复文件的 md5 文件。
如何使用md5文件恢复文件名?
答案1
首先将每个恢复的文件重命名(或链接)为包含其 MD5 的名称。
然后循环该文件(可能使用while read md5 name
)并将 md5name 重命名(或链接)回原始文件名。
假设文件是由 md5sum 生成的格式,这样的东西就可以工作。
for x in *
do
mv "$x" `md5sum < "$x" | cut -d' ' -f1`
done
cat /elsewhere/md5file |
while read md5 name
do
mv "$md5" "$name"
done
确保不要在第一步中重命名 MD5 列表。我假设它位于/elsewhere/
您可以放在家里或 /tmp/ 等的虚构位置。
答案2
一步一步尝试:
md5sum * | awk 'NR==FNR {FN[$1] = $2; next} {print "mv -v \"" $2 "\" \"" FN[$1] "\""}' md5file -
这会为工作目录中的每个文件创建一个 md5sum 签名,将其通过管道传输到一个awk
脚本中,该脚本将旧 md5 文件中的“旧”文件名读取到由签名索引的数组中,然后从 stdin ( -
,管道)并将相应的mv
命令打印到标准输出。| sh
如果对建议感到满意,则将其通过管道传输到 shell ( ) 中。