Ubuntu下如何用bash批量重命名多文件夹文件按计数命名后迁移到同一目录
Bash目录结构调整脚本实现
操作步骤
- 首先确认你当前处于
images目录下,先创建目标存放目录:
mkdir -p ../final_images
- 在当前
images目录下新建脚本文件,比如rename_move.sh,写入以下内容:
#!/bin/bash # 初始化全局帧序号 count=1 # 按自然顺序遍历所有video子目录 for video_dir in $(ls -d video*/ | sort -V); do # 按帧编号顺序遍历当前目录下的所有jpg文件 for frame in $(ls "${video_dir}"frame*.jpg | sort -V); do mv "${frame}" "../final_images/frame${count}.jpg" ((count++)) done done
- 给脚本加执行权限并运行:
chmod +x rename_move.sh ./rename_move.sh
注意事项
- 试运行验证:可以先把脚本里的
mv替换成echo mv,运行脚本查看输出的移动命令是否符合命名规则和路径要求,确认无误后再换回mv正式执行 - 结果校验:执行完成后运行
ls ../final_images | wc -l,输出结果为28800则说明所有文件都已处理完成 - 该脚本解决了原脚本遍历未排序导致的序号错乱、变量未加引号引发的特殊文件名报错的问题,一步完成移动和重命名操作,无需额外修改原目录文件
内容的提问来源于stack exchange,提问作者rwxrwxr--
相关产品推荐
相关产品推荐

