详解Shell 命令行批量处理图片文件名的实例
发布时间 - 2026-01-11 02:37:20 点击率:次Shell 命令行批量处理图片文件名

前言:
从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的。并且文件名有长有短,很是糟心。因此,我想把这些文件给全部整理好,当然是用shell来处理啦!
说干就干。
循环所有文件
首先,我把所有的乱七八糟的图片,全部放在 ./image/ 这个文件夹下面。
然后在外层写一个i.sh的shell文件,录入下面的内容。
我的文件结构演示如下:
| 文件 |
|---|
| image/xxx.jpg |
| image/xxx.jpeg |
| i.sh |
for f in $(find ./image -iname "*.*"); do echo $f done
然后执行 sh i.sh 命令,顺利在命令行里面输出了所有的图片文件。
实现 i++ 数字效果
我想把图片全部命名为 1.jpg 2.jpg 这样的图片文件,所以就需要一个类似于js的i++效果。
于是,把上面代码修改为
# 搞一个i的变量 i=1 for f in $(find ./image -iname "*.*"); do ## 打印 i echo $i echo $f ## 计算i++ ((i++)) done
OK,已经顺利的输出了数字了。到这一步就很明显的得到了我们想要的,下面只要把文件给复制一下就好了。
实现重命名效果
# 搞一个i的变量 i=1 mkdir img for f in $(find ./image -iname "*.*"); do cp $f ./img/$i.jpg ## 计算i++ ((i++)) done
好,如上,我们就将图片全部根据数字重命名,并且放到了一个新的img文件夹中。我们想要的效果就实现了。
用MD5值命名图片
突然想到,数字这东西不靠谱,下次不小心执行了,很容易把图片给搞乱掉,还是MD5值靠谱,并且注意,还能过滤同样的图片。
嗯,理想很丰满,我们来看看。
md5 -q $file
可以输出文件的MD5计算值。就用这个了。改造上面代码如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 计算MD5值,并赋予一个变量 a=$(md5 -q $f) # 复制文件 cp $f ./img/$a.jpg done
我是想拿这一堆文件重复实现,所以用复制,如果不需要这样考虑,完全可以使用mv重命名,代码如下:
mkdir img for f in $(find ./image -iname "*.*"); do # 计算MD5值,并赋予一个变量 a=$(md5 -q $f) # 复制文件 mv $f ./image/$a.jpg done
以上所有命令均基于MAC系统运行。如果是Linux 可能有细微差异。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Shell
# 命令行批量处理图片文件名
# 命令行批量处理图片文件名的实例详解
# Shell脚本中使用getopts处理多命令行选项
# jupyter notebook 参数传递给shell命令行实例
# shell脚本读取命令行参数的实现
# linux shell 解析命令行参数及while getopts用法小结
# Linux命令行循环执行shell命令
# Shell脚本命令行批处理bash sh cmd bat函数极简学法
# Linux shell命令行查询文件中内容常用的命令及其用法
# Linux实现自主Shell命令行解释器
# 重命名
# 想把
# 命令行
# 有的是
# 有长有短
# 我是
# 这一
# 放在
# 不需要
# 还能
# 如有
# 很容易
# 我把
# 要把
# 希望能
# 能有
# 来看看
# 可以使用
# 就将
# 就用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
网站制作价目表怎么做,珍爱网婚介费用多少?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel如何使用查询构建器?(Query Builder高级用法)
JavaScript如何实现音频处理_Web Audio API如何工作?
简单实现Android验证码
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
如何挑选高效建站主机与优质域名?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何在 React 中条件性地遍历数组并渲染元素
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel如何处理文件下载请求?(Response示例)
简单实现jsp分页
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
米侠浏览器网页背景异常怎么办 米侠显示修复
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
香港服务器网站卡顿?如何解决网络延迟与负载问题?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Swift中switch语句区间和元组模式匹配
微信小程序 require机制详解及实例代码
如何打造高效商业网站?建站目的决定转化率
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
个人摄影网站制作流程,摄影爱好者都去什么网站?
Python自动化办公教程_ExcelWordPDF批量处理案例
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
详解Android图表 MPAndroidChart折线图
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何快速查询网站的真实建站时间?
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何实现全文搜索功能?(Scout和Algolia示例)

