我是 bash 新手,我试图通过以下方式将目录中的所有文件重命名为其 md5 校验和。
r@r:~g$ sh
$ for F in *; do
> mv "$F" "$(md5sum "$i")"
> done
r@r:~/g$ ls
'd458d56dd4ab8c2b335da66e0bcab924 nRUNO5wt3JRN3pBt.mp4'
Run Code Online (Sandbox Code Playgroud)
我打错字了,如果我没记错的话,这行mv "$F" "$(md5sum "$i")"应该是。mv "$F" "$(md5sum "$F")"现在文件夹中的所有文件都丢失了,只剩下一个。
文件是否被删除或移动到某处?有什么办法可以恢复它们吗?
当我尝试在包含文件“1.png”的文件夹中重现这种情况时,会发生以下情况。
r@r:~/a$ sh
$ for F in *; do
> mv "$F" "$(md5sum "$i")"
> done
md5sum: '': No such file or directory
mv: cannot move '1.png' to '': No such file or directory
Run Code Online (Sandbox Code Playgroud)