用手机拍摄延时摄影照片,照片文件名不是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