批量将图片文件名改为小写
在使用 GitHub Pages 搭建博客的过程中,常会遇到这样的问题:本地图片能正常显示,线上却无法查看。根本原因在于:GitHub Pages 的服务器是大小写敏感的。例如,MyImage.JPG 与 myimage.JPG 在本地可能等价,但线上并不识别为同一文件。
以下脚本能批量把指定目录下所有图片的文件名(不含扩展名)转换为小写,扩展名保持不变:
#!/bin/bash
# 设置图片目录(修改成你自己的目录)
IMAGE_DIR=~/Desktop/media
cd "$IMAGE_DIR" || exit 1
# 查找所有图片文件(你可以增加其他类型)
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.webp" \) | while read f; do
dir=$(dirname "$f")
filename=$(basename "$f")
name="${filename%.*}" # 文件名(不含扩展名)
ext="${filename##*.}" # 扩展名
# 生成小写文件名
lower_name=$(echo "$name" | tr '[:upper:]' '[:lower:]')
new_file="$dir/$lower_name.$ext"
if [ "$f" != "$new_file" ]; then
mv "$f" "$new_file"
fi
done
使用方法
将脚本保存为 xxxx.sh
替换 IMAGE_DIR=… 为你图片所在目录路径
赋予执行权限并运行:
chmod +x xxxx.sh
./xxxx.sh
这样可避免线上图片加载失败的问题,确保文件名和引用路径一致。