我一直试图找到一个简单的单行解决方案,用md5哈希重命名目录中的所有文件。我考虑过使用find -exec但是我不知道如何将md5sum的结果传送到mv。我试过排列

find . -exec md5sum {} | mv {} \;


find . -exec mv {} `md5sum {}`

也许有更好的办法解决这个问题?请建议一个完全初学者。感谢大家的帮助。

最佳答案

您可以重复使用:Rename files to md5 sum + extension (BASH)
只要稍加修改,它就可以完全按照您的要求工作(我已经为您编辑了命令):

md5sum * | sed -e 's/\([^ ]*\)  \(.*\)$/mv -v "\2" \1/' | sh

输出示例:
'a' -> 'b026324c6904b2a9cb4b88d6d61c81d1'
'b' -> '26ab0db90d72e28ad0ba1e22ee510510'
'c' -> '6d7fce9fee471194aa8b5b6e47267f03'

关于linux - 如何使用bash中程序的输出重命名文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45837074/

10-11 15:39