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

Ubuntu下批量修复含无效点号的文件名以完成跨NTFS/exFAT硬盘的文件复制

Ubuntu下批量修复含无效点号的文件名以完成跨NTFS/exFAT硬盘的文件复制

我太懂你这种烦恼了——复制旧归档文件到外接NTFS/exFAT硬盘时,那些带奇怪点号的文件和文件夹总跳出来报“invalid file name”,一个个改根本忙不过来。下面给你一套批量处理的方案,一次性搞定两种问题(文件名末尾带点、文件名里有双点),之后就能顺利复制了。

第一步:先处理末尾带点的文件和文件夹

NTFS/exFAT不允许文件名或文件夹名以点结尾,我们先把这些多余的点去掉:

  1. 修复末尾带点的文件:
find /你的源文件夹路径 -type f -name "*." -exec sh -c 'mv "$0" "${0%."}"' {} \;

解释:find遍历源文件夹下所有以点结尾的文件,${0%."}"是Shell参数替换,去掉文件名末尾的最后一个点。

  1. 修复末尾带点的文件夹:
find /你的源文件夹路径 -type d -name "*." -exec sh -c 'mv "$0" "${0%."}"' {} \;

建议先处理文件夹再处理文件,避免路径嵌套导致的识别问题。

第二步:修复文件名中的双点(比如file..txt这类)

有些文件会出现扩展名前有双点的情况,同样会被NTFS/exFAT判定为无效,我们把连续的双点替换成单点:

  1. 修复文件中的双点:
find /你的源文件夹路径 -type f -name "*.." -exec sh -c 'mv "$0" "$(echo "$0" | sed 's/\.\././g')"' {} \;

这里用sed把文件名里所有连续的双点替换成单点,确保文件名格式合规。

  1. 修复文件夹中的双点:
find /你的源文件夹路径 -type d -name "*.." -exec sh -c 'mv "$0" "$(echo "$0" | sed 's/\.\././g')"' {} \;

依然优先处理文件夹,避免后续文件路径出错。

第三步:合规后完成文件复制

处理完所有无效文件名后,就可以放心复制了。推荐用rsync,它比cp更可靠,支持断点续传,还能同步权限信息:

rsync -av /你的源文件夹路径/ /你的目标硬盘路径/

如果只是简单复制,用cp -r也可以,但rsync在处理大文件和中断后恢复时更省心。

小提示

  • 操作前建议先在一小部分测试文件上试一遍命令,确保没有问题再批量处理整个归档;
  • 如果文件名里还有其他特殊字符导致复制失败,可以考虑用rsync的--iconv=utf-8,utf-16参数处理字符编码问题,不过你的情况主要是点号问题,大概率用不上。

备注:内容来源于stack exchange,提问作者Cor Nouws

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:38:12