我有 .txt 列表,其中包含文件和相应的 MD5 哈希值:
ab16d9ab5682bb0038c901ad8fc424c0 *file1.doc
28bb8e092301340f19585201166e5b86 *file2.doc
5f53d5e9512a717049185fcf617b8a37 *file3.doc
3c28de2b988ce82b04803671540427e5 *file4.doc
75079fb178347e3f1b3b886589ca6471 *file5.doc
当 .txt 文件位于目录中时:
- 如何将文件重命名为其哈希值?
- 如何将哈希值重命名为其文件名?
答案1
如何将文件重命名为其哈希值?
while IFS=' ' read <&3 -r hash fileName; do
echo mv -v -- "${fileName#\*}" "${hash}";
done 3< infile.txt
如何将哈希值重命名为其文件名?
while IFS=' ' read <&3 -r hash fileName; do
echo mv -v -- "${hash}" "${fileName#\*}";
done 3< infile.txt
笔记echo
:当您对试运行感到满意时删除。-v
是一些实现支持的非标准扩展,mv
告诉它们更详细。如果您mv
不支持它,请将其删除。
我们infile.txt
在文件描述符 3 而不是 stdin (0) 上打开,这样它就不会干扰mv
用户提示(如果有)。