将多个目录下的多个文件重命名为目录名加1

将多个目录下的多个文件重命名为目录名加1

我一直在尝试将一堆文件重命名到它们的目录中。

我有多个带空格和不带空格的目录/The Dark Tower

其中有多个标题,文件名带有空格和不带空格:

/The Dark Tower/TDT feature.mov
/The Dark Tower/Main Trailer.mov 
/The Dark Tower/Trailer_Sub

我需要更改这些目录中的文件,并在文件名末尾添加一个数字的文件夹名称:

/The Dark Tower/TDT feature.mov   ->   /The Dark Tower/The Dark Tower1.mov

/The Dark Tower/Main Trailer.mov  ->   /The Dark Tower/The Dark Tower2.mov

/The Dark Tower/Trailer_Sub       ->   /The Dark Tower/The Dark Tower3.mov

我一直在手动执行此操作,但我宁愿能够使用一个脚本来完成我拥有的 100 个电影标题的操作。我知道这是可以做到的,但我目前的尝试还没有成功。

答案1

使用 Bashism 重命名文件

当然还有其他方法可以做到这一点,但如果您正在寻找一个纯粹的 Bash 解决方案,除了 shell 本身之外不依赖任何实用程序,那么以下方法将起作用。

dir="The Dark Tower"
declare -i count=1
for file in "$dir"/*.mov; do
    mv "$file" "${dir}/${dir} ${count}.mov"
    count+=1
done

相关内容