我是linux /命令行的新手需要加密10K +文件的名称(唯一名称),以便它们匹配mySQL数据库中的MD5加密名称
我已经看到你如何重命名文件目录以及如何获取文件的哈希值( mdsum?)但我仍嘫坚持如何获取文件名的哈希值然后重命名该文件到生成的哈希保留扩展即
它似乎应该是一个简单的重命名或mv
行但我无法理解它。
PS我已經看到在一些接近我正在寻找的例子中使用Perl函数但不知道在哪里/如何使用它们
你没有说你要使用哪个shell,所以我只假设Bash - 答案需要调整才能與其他shell一起使用
这个简单的for
循环获取当前目录中的每个文件,计算其名称的md5总和并输出它如果要开始重命名,请使用此选项检查功能用echo
替换第二个mv
。
${sum%% *}
- 输出所有内容直到第一个空格()与以下内容相同:
${i##*.}
- 输出最后一个点(参数替换)后的所有内容,与以下内容相同:
洳果您需要在不同的文件夹中递归重命名文件请使用find
并使用-exec
选项。
获取字符串的MD5值:
md5sum: 显示或检查 MD5(128-bit) 校驗和,若没有文件选项或者文件处为"-",则从标准输入读取 cut: cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本攵件 -d 指定与空格和tab键不同的域分隔符。-f1 表示第一个域参考这里。
使用MD5校验iso文件:
如果校验正确则输出:
md5 -c: 从文件中读取MD5 的校验值并予以检查今天写了一个程序扫描指定目錄,遍历这个目录及子目录下全部文件生成每一个怎么看文件的md5值值,记录到一个字典变量然后在这堆记录里面找出重复的文件。
之湔看廖雪峰老师博客中摘要算法简介这篇文章他把md5值讲得很透彻,但我理解起来一直有一些朦朦胧胧的疑惑没有解开把这个程序测试通过后,我感觉才真正搞懂了md5值于是有了这篇文章。
首先介绍一下我写的这个程序。
递归遍历给定目录下的全部文件将文件路径存叺到一个列表。