文件名清理工具

粘贴文件名列表后,即可获得经过清理的版本,该版本可兼容所有操作系统、任何ZIP压缩包及任意 CDN 路径。此清理工具会将带重音符号的字母转换为纯ASCII字符,移除Windows系统中导致格式错误的字符(如\ / : * ? " < > |)、删除控制字符、压缩空格,并将无效字符序列替换为自定义替代字符(默认值:连字符)。该功能适用于批量上传至S3云存储、发送课程资料ZIP文件或修复从旧NAS设备导入的照片时使用。

如何对文件名进行清理处理

  1. 1

    粘贴文件名

    每行一个,可包含或不包含扩展项。扩展项保持原样。

  2. 2

    选择替换项

    选择用于替换不安全序列的字符。连字符(`-`)是最安全的默认选项;下划线(`_`)为传统首选方案。

  3. 3

    运行清理程序

    每个名称均经过修剪、转换为ASCII、去除禁止使用的字符,并合并空格。若结果为空,则变为`file`。

  4. 4

    重命名前查看

    输出仅列出清理后的名称,因此在原地重命名前,请检查是否出现冲突(即两个输入产生相同输出)。

什么是不安全的,以及原因何在?

不同的文件系统和工具都拥有各自的黑名单。其跨平台兼容的安全边界比大多数人想象的更为严格。

导致文件名不安全的字符与模式

项目 为何不安全
\ / : * ? " < > | 在 Windows 系统中禁止使用(NTFS、FAT 格式)。
ASCII 控制字符 0x00-0x1F 在大多数文件系统中无效;会中断 Shell 脚本的执行。
首尾空格 被 Windows 静默移除;造成隐藏错误。
结尾的点号 被 Windows 静默移除。
保留名称 CONPRNAUXNULCOM1..9LPT1..9,在 Windows 系统中均被屏蔽。
Unicode 组合标记 使 cafécafé 看起来相同,但在某些系统中是不同的文件名。
表情符号与象形文字字符 能在现代系统中正常使用,但会破坏旧版 CI 流水线及 CDN 路径。

已应用的标准化步骤

  1. 转换为ASCII。 带重音符号的字母会变为其基础字母:café变为cafenaïve变为naive。没有ASCII对应形式的文字(如CJK、表情符号)会被删除。
  2. 替换禁用字符。 \ / : * ? " < > |及控制字符会变为您选择的替代字符(默认值:连字符)。
  3. **空格合并。**连续的空格和制表符将被合并为一个替换字符。
  4. 边缘修剪。 开头和结尾的点号及替代字符会被移除;结果为空时变为file
  5. 保留扩展名。 名称内部的点号不会被替换,因此.pdf.jpg.tar.gz会保留;仅移除结尾的点号。

小贴士

  • 保留扩展名。 名称内部的点号会保留,因此.pdf.jpg.tar.gz保持原样。
  • 检查冲突情况。 由于重音符号始终会被转换,Résumé.pdfResume.pdf均会变为resume.pdf。在原地重命名前,请先检查输出结果。
  • 网页路径。 对于URL,在清理后还需进行百分比编码;更理想的做法是将URL slug保持为[a-z0-9-]的子集,从而无需进行编码处理。

常见问题

对于网页资源和跨平台ZIP文件而言,确实如此,这能避免在文件上传至不区分大小写的Windows服务器时,从区分大小写的Linux CDN 链接该文件时出现细微错误。该工具不会更改字母大小写,如需小写,请自行转换。而对于本地使用场景,则取决于个人偏好。

空格在所有现代操作系统中都是合法的,但会强制使用URL编码(%20),破坏许多命令行管道,并使旧版工具难以识别。将其替换为连字符可彻底避免此类错误。

该工具始终输出纯ASCII。带重音符号的字母会被转换(café变为cafe),西里尔字母会转写为拉丁字母近似形式,没有ASCII对应形式的字符(如CJK、泰文、表情符号)会被删除。如果目标环境需要原始的非拉丁名称,请将其另存到单独的文件中。

不,该列表在请求期间会在内存中被清除,之后不会存储或写入任何日志文件。

相关工具

此工具还提供其他语言版本