You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本批量重命名子目录文件 适配Mystic BBS文件名规则

适配Mystic BBS平台的批量文件重命名解决方案

最终实现脚本

满足所有重命名规则,支持递归遍历子目录、清理非法字符、长度自动截断:

#!/bin/bash
# 配置项:默认处理当前目录,也可执行时传入指定目录
TARGET_DIR="${1:-.}"
# 配置项:最大允许文件名长度
MAX_FILENAME_LEN=79

# 递归遍历所有文件,兼容带空格/特殊字符的文件名
find "${TARGET_DIR}" -type f -print0 | while IFS= read -r -d $'\0' full_path; do
    # 拆分文件路径、主名、扩展名
    file_dir=$(dirname "${full_path}")
    full_name=$(basename "${full_path}")
    file_ext="${full_name##*.}"
    file_main="${full_name%.*}"

    # 1. 转写带抑扬符/波浪线的变体字母为普通ASCII,丢弃高位非法字符
    cleaned_main=$(echo "${file_main}" | iconv -f UTF-8 -t ASCII//TRANSLIT//IGNORE)
    # 2. 所有非字母数字字符替换为下划线
    cleaned_main=$(echo "${cleaned_main}" | sed -r 's/[^a-zA-Z0-9]/_/g')
    # 3. 合并连续下划线,去除首尾多余下划线
    cleaned_main=$(echo "${cleaned_main}" | sed -r 's/_+/_/g; s/^_//; s/_$//')

    # 4. 长度截断,保留扩展名
    if [[ "${file_ext}" != "${full_name}" ]]; then
        # 存在扩展名的情况,预留扩展名和分隔点的长度
        allowed_main_len=$(( MAX_FILENAME_LEN - ${#file_ext} - 1 ))
        [[ ${allowed_main_len} -lt 1 ]] && allowed_main_len=1
        cleaned_main="${cleaned_main:0:${allowed_main_len}}"
        final_name="${cleaned_main}.${file_ext}"
    else
        # 无扩展名直接截断
        final_name="${cleaned_main:0:${MAX_FILENAME_LEN}}"
    fi

    # 执行重命名,-n参数避免覆盖同名文件
    mv -n "${full_path}" "${file_dir}/${final_name}"
done

使用说明

  1. 将脚本保存为rename_bbs.sh,执行chmod +x rename_bbs.sh赋予执行权限
  2. 首次验证:把脚本中mv -n前添加echo,执行脚本后会打印所有待执行的重命名操作,确认规则符合预期后再去掉echo正式执行
  3. 处理当前目录:./rename_bbs.sh
  4. 处理指定目录:./rename_bbs.sh /path/to/your/archive/directory

原有问题修复说明

之前编写的命令存在的问题已全部解决:

  • 修正了递归遍历的逻辑错误,使用find -print0方案兼容所有特殊文件名格式,避免cd切换目录导致的路径错误
  • 新增iconv转换步骤自动处理变体字母和高位非法字符
  • 新增连续下划线合并逻辑,避免多余字符占用长度
  • 内置长度截断逻辑,自动保留扩展名不被截断

批量文件处理脚本学习路径推荐

  • 基础层:熟练掌握find、sed、awk、grep、iconv等常用文件/文本处理命令的核心参数,明确各命令的适用场景
  • 语法层:掌握Bash字符串参数扩展、循环/分支结构、IFS变量控制、特殊变量的用法,学会正确处理带空格/特殊字符的文件名场景
  • 安全层:养成批量操作前先模拟执行的习惯,学会备份原有文件名清单,掌握重名冲突的处理逻辑
  • 优化层:了解rename(Perl版)、mmv等专用批量重命名工具的用法,大批量文件处理时可使用并行工具提升执行效率

内容的提问来源于stack exchange,提问作者Paulie420

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:36:03