1. 批量加前缀bash#!/bin/bash # add_prefix.sh - 给目录下所有文件加前缀 DIR="/data/photos" PREFIX="img_" cd "$DIR" || exit 1 for f in *; do [ -f "$f" ] || continue mv "$f" "${PREFIX}${f}" done echo "完成"2. 批量加后缀(在扩展名前插入)bash#!/bin/bash # add_suffix.sh - 在扩展名前加后缀,如 a.jpg -> a_old.jpg DIR="/data/photos" SUFFIX="_old" cd "$DIR" || exit 1 for f in *; do [ -f "$f" ] || continue name="${f%.*}" ext="${f##*.}" if [ "$name" = "$f" ]; then mv "$f" "${f}${SUFFIX}" else mv "$f" "${name}${SUFFIX}.${ext}" fi done3. 批量替换文件名中的字符串bash#!/bin/bash # replace_name.sh - 把文件名中的 old 替换成 new DIR="/data/photos" OLD="IMG" NEW="photo" cd "$DIR" || exit 1 for f in *"$OLD"*; do [ -f "$f" ] || continue mv "$f" "${f//$OLD/$NEW}" done4. 批量按序号重命名bash#!/bin/bash # rename_by_number.sh - 重命名为 0001.jpg、0002.jpg ... DIR="/data/photos" PREFIX="img_" cd "$DIR" || exit 1 i=1 for f in $(ls | sort); do [ -f "$f" ] || continue ext="${f##*.}" new=$(printf "${PREFIX}%04d.%s" $i "$ext") mv "$f" "$new" ((i++)) done5. 批量修改扩展名bash#!/bin/bash # change_ext.sh - 把所有 .jpeg 改成 .jpg DIR="/data/photos" cd "$DIR" || exit 1 for f in *.jpeg; do [ -f "$f" ] || continue mv "$f" "${f%.jpeg}.jpg" done
1. 批量加前缀bash#!/bin/bash # add_prefix.sh - 给目录下所有文件加前缀 DIR="/data/photos" PREFIX="img_" cd "$DIR" || exit 1 for f in *; do [ -f "$f" ] || continue mv "$f" "${PREFIX}${f}" done echo "完成"2. 批量加后缀(在扩展名前插入)bash#!/bin/bash # add_suffix.sh - 在扩展名前加后缀,如 a.jpg -> a_old.jpg DIR="/data/photos" SUFFIX="_old" cd "$DIR" || exit 1 for f in *; do [ -f "$f" ] || continue name="${f%.*}" ext="${f##*.}" if [ "$name" = "$f" ]; then mv "$f" "${f}${SUFFIX}" else mv "$f" "${name}${SUFFIX}.${ext}" fi done3. 批量替换文件名中的字符串bash#!/bin/bash # replace_name.sh - 把文件名中的 old 替换成 new DIR="/data/photos" OLD="IMG" NEW="photo" cd "$DIR" || exit 1 for f in *"$OLD"*; do [ -f "$f" ] || continue mv "$f" "${f//$OLD/$NEW}" done4. 批量按序号重命名bash#!/bin/bash # rename_by_number.sh - 重命名为 0001.jpg、0002.jpg ... DIR="/data/photos" PREFIX="img_" cd "$DIR" || exit 1 i=1 for f in $(ls | sort); do [ -f "$f" ] || continue ext="${f##*.}" new=$(printf "${PREFIX}%04d.%s" $i "$ext") mv "$f" "$new" ((i++)) done5. 批量修改扩展名bash#!/bin/bash # change_ext.sh - 把所有 .jpeg 改成 .jpg DIR="/data/photos" cd "$DIR" || exit 1 for f in *.jpeg; do [ -f "$f" ] || continue mv "$f" "${f%.jpeg}.jpg" done