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

Linux下如何删除文件名中的第一个分隔符?

批量删除文件名中的第一个分隔符(点)

你的mv a.b* ab*命令无效,是因为shell通配符展开后,ab*并没有对应的目标文件名,mv无法自动完成这种模式匹配的替换。以下是几种可行的解决方案:

方法1:Bash循环+参数扩展

这是最通用的方法,无需额外安装工具:

cd my_directory
for file in a.b*; do
  mv -- "$file" "${file/./}"
done
  • ${file/./}是Bash的参数扩展语法,会将文件名中的第一个点替换为空字符串,实现删除效果。
  • --用于处理文件名以-开头的情况,避免被mv识别为命令选项。

方法2:Perl版rename命令(Debian/Ubuntu等系统默认)

如果系统安装的是Perl版本的rename,可以用正则表达式快速替换:

cd my_directory
rename 's/\.//' a.b*
  • s/\.//是正则替换规则,匹配第一个.并替换为空。
  • 加上-n参数可以先预览修改结果,避免误操作:rename -n 's/\.//' a.b*

方法3:Util-linux版rename命令(RHEL/CentOS等系统默认)

部分系统使用的是util-linux套件的rename,语法更简单:

cd my_directory
rename . '' a.b*
  • 语法格式为rename 旧字符串 新字符串 目标文件,这里将第一个.替换为空。

内容的提问来源于stack exchange,提问作者Andy Junghyun Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:30:41