将一系列文件命名为BASH中的封闭目录名称

时间:2014-04-10 22:07:38

标签: bash batch-rename

我有一大堆文件,这些文件是由具有奇怪命名结构的应用程序提取的。

每个文件名为“streamvideo 1.flv”,附在名为“video”的文件夹中,该文件夹由第二个文件夹包围,其中包含我想要使用的名称。

4607/video/streamvideo 1.flv一样。我想要的是遍历所有这些并在编号文件夹后重命名streamvideo 1.flv。因此,使用我的示例,将此实例重命名为4607.flv

有很多:

enter image description here

3 个答案:

答案 0 :(得分:1)

cd path/to/top/directory
for dir in */
do
    mv "$dir/video/streamvideo 1.flv" "${dir%%/}.flv"
done

答案 1 :(得分:0)

你可以通过一些perl程序解决它:

for (<*>) {rename "$_/video/streamvideo 1.flv", "$_.flv";}

答案 2 :(得分:0)

找+ mv

find * -type f -name "*.flv" |while read -r line; do mv "$line" "${line%%/*}.flv"; done