通过目录名重命名目录中的文件

时间:2013-12-17 09:11:19

标签: linux bash

我有多个目录,里面包含单个文件,所有目录中的文件名称相同。我需要通过目录名重命名文件,以便我可以在同一目录中收集它们。

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

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

2 个答案:

答案 0 :(得分:0)

进入/ home / x / Desktop。有

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

此命令可以满足您的需要。如果你想确定什么是hapen,你可以通过为“mv”提供“echo”来测试这个:

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

答案 1 :(得分:0)

试试这个

  

cd / home / x / Desktop /

for i in $(ls); do mv $i/* $i/$i; done