如何用bash中的程序输出重命名文件?

时间:2017-08-23 10:22:25

标签: linux bash mv md5sum

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

的排列
find . -exec md5sum {} | mv {} \;

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

也许还有更好的方法可以解决这个问题?请建议一个初学者。所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以重复使用以下答案:Rename files to md5 sum + extension (BASH)

通过稍微修改它会完全符合您的要求(我已经为您编辑了命令):

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

输出示例:

'a' -> 'b026324c6904b2a9cb4b88d6d61c81d1'
'b' -> '26ab0db90d72e28ad0ba1e22ee510510'
'c' -> '6d7fce9fee471194aa8b5b6e47267f03'