我有多个目录,其中包含一个文件,所有目录中的文件都是同名的。我需要根据文件的目录名重命名文件,以便在同一目录中收集它们。

/home/x/Desktop/s0.01-k5/x
/home/x/Desktop/s0.01-k7/x
/home/x/Desktop/s0.01-k10/x

我需要的是将所有的x重命名为它们的目录名。

最佳答案

进入/home/x/desktop。在那里

for i in */x;do mv -vf "$i" "${i%/x}/${i%/x}";done

这个命令做你想做的。如果你想确定会发生什么,你可以通过给“mv”一个“echo”来测试:
for i in */x;do echo mv -vf "$i" "${i%/x}/${i%/x}";done

关于linux - 通过目录名称重命名目录中的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20630050/

10-14 18:14
查看更多