我有一大堆文件,这些文件是由具有奇怪命名结构的应用程序提取的。
每个文件名为“streamvideo 1.flv”,附在名为“video”的文件夹中,该文件夹由第二个文件夹包围,其中包含我想要使用的名称。
与4607/video/streamvideo 1.flv
一样。我想要的是遍历所有这些并在编号文件夹后重命名streamvideo 1.flv。因此,使用我的示例,将此实例重命名为4607.flv
有很多:
答案 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