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

如何批量移除文件名中的单引号?

如何批量移除文件名中的单引号?

嗨,别担心,这是Linux里非常常见的批量重命名需求,我给你两种实用的方法,分别用mv和rename命令,都能轻松搞定,我会把每个步骤都解释清楚~

方法一:用mv配合Shell循环(兼容性拉满,所有Linux发行版都能用)

mv是Linux自带的基础重命名命令,配合shell循环可以实现批量操作。直接在终端里执行这段命令就行:

for file in *\'.mp4; do
  mv -- "$file" "${file//\'/}"
done

简单解释:

  • for file in *\'.mp4:匹配所有文件名里包含单引号的.mp4文件(转义单引号\'是为了让shell正确识别它是文件名的一部分)。
  • mv -- "$file" "${file//\'/}":
    • --是为了避免文件名以-开头时,mv把它当成命令选项,保证命令安全执行;
    • "$file"是原文件名,用双引号包裹能处理带空格或特殊字符的文件名;
    • ${file//\'/}是shell的参数替换语法,//表示全局替换,把原文件名里所有的单引号'替换成空字符串,也就是直接删掉。

如果怕误操作,可以先加echo测试一下执行效果,确认没问题再去掉echo:

for file in *\'.mp4; do
  echo mv -- "$file" "${file//\'/}"
done

方法二:用rename命令(更简洁,分两种版本)

rename命令有两个常见版本,用法略有不同,你可以根据自己的系统选择:

1. Perl版本的rename(Debian/Ubuntu等系默认)

这个版本用正则表达式处理,非常灵活,直接执行:

rename "s/'//g" *.mp4

解释:

  • s/'//g是Perl风格的正则替换:s表示替换操作,'是要被移除的字符,//中间为空表示删掉它,g是全局替换(把文件名里所有的单引号都去掉,而不只是第一个)。

2. util-linux版本的rename(RHEL/CentOS等系默认)

这个版本用法更直白,指定要替换的字符和替换后的内容:

rename \' '' *.mp4

解释:

  • 第一个参数\'是要被替换的单引号(用反斜杠转义,避免shell解析错误);
  • 第二个参数''是空字符串,也就是把单引号删掉;
  • 最后*.mp4是要处理的目标文件。

同样,你可以加-n参数先预览操作(比如rename -n "s/'//g" *.mp4),确认没问题再执行实际重命名。


备注:内容来源于stack exchange,提问作者Ralf Hütter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:25:30