用手机拍摄延时摄影照片,照片文件名不是Premiere认可的序列名字,所以需要更改照片名字,这个脚本可以根据文件时间顺序对文件名进行批量更改,并且原文件名中如果含有空格也可以处理,代码细节可以自行修改,我就不做太多阐释了。
程序
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
i=1
cd $1
for file in $(ls -rt *.jpg)
do
# echo $file
# echo $i
mv "$file" "img_$i.jpg"
let i++
done
IFS=$SAVEIFS
使用方法:
- cd到照片文件夹的上一级文件夹,比如照片在
project/photo下面,就cd project - 创建这个脚本文件,可以随便怎么创建,比如
touch chname.sh - 把代码写入这个脚本文件,可以用
vim等 - 更改权限可运行,
chmod +x chname.sh - 运行脚本,第一个参数是照片文件夹名字,
./chname.sh photo
效果展示
这是原文件

这是运用脚本修改名称后的样子

这是终端里面的指令

参考:
- 你知道Shell脚本中$0 $1 $# $@ $* $? $$ 都是什么意思吗?https://os.51cto.com/article/684975.html
- BASH Shell: For Loop File Names With Spaces https://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html

本文介绍了一个bash脚本,用于根据文件的拍摄时间顺序批量修改照片文件名,尤其适用于处理含有空格的文件名。通过在终端运行脚本并指定照片文件夹路径,可以实现方便的文件重命名。参考链接提供了关于bash脚本中特殊变量的含义。
5477

被折叠的 条评论
为什么被折叠?



