shell/bash 脚本批量修改文件名,名称依照文件时间排序并且文件名含有空格

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

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

使用方法:

  1. cd到照片文件夹的上一级文件夹,比如照片在project/photo下面,就cd project
  2. 创建这个脚本文件,可以随便怎么创建,比如touch chname.sh
  3. 把代码写入这个脚本文件,可以用vim
  4. 更改权限可运行,chmod +x chname.sh
  5. 运行脚本,第一个参数是照片文件夹名字,./chname.sh photo

效果展示

这是原文件
在这里插入图片描述
这是运用脚本修改名称后的样子
在这里插入图片描述
这是终端里面的指令
在这里插入图片描述

参考:

  1. 你知道Shell脚本中$0 $1 $# $@ $* $? $$ 都是什么意思吗?https://os.51cto.com/article/684975.html
  2. BASH Shell: For Loop File Names With Spaces https://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值