如何使用终端批量重命名特定前缀的MacOS文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计566个文字,预计阅读时间需要3分钟。
使用终端命令批量重命名带有特定前缀的文件,关键在于使用精确匹配的选项。以下是一个简单的示例命令,它使用系统自带的for循环和mv命令来重命名特定格式的文件:
匹配并移除指定前缀(例如删掉 “draft_”)
假设当前目录下所有文件都以 draft_ 开头,你想把它们全部改成不带这个前缀的名字:
- 先确认有哪些文件:
ls draft_* - 执行重命名:
for file in draft_*; do mv "$file" "${file#draft_}"; done
说明:${file#draft_} 是 Bash/Zsh 的参数扩展语法,表示“从左边去掉第一个匹配的 draft_”,比用 sed 更轻量、更可靠。
匹配并替换成新前缀(例如把 “old_” 换成 “new_”)
如果原文件是 old_config.txt、old_log.json,你想统一改为 new_config.txt、new_log.json:
- 运行命令:
for file in old_*; do mv "$file" "new_${file#old_}"; done
注意:这里用的是 ${file#old_} 去掉旧前缀,再拼上新前缀,避免误改文件名中间或后缀里偶然出现的 “old_”。
只处理特定类型,且保留原扩展名
比如只想改 old_ 开头的图片,且确保 .jpg/.png 不被破坏:
- 命令:
for file in old_*.jpg old_*.png; do [ -n "$file" ] && mv "$file" "final_${file#old_}"; done
[ -n "$file" ] 是防错机制——当没匹配到任何文件时,通配符会原样保留,这行判断能跳过无效执行,避免创建错误文件名。
加个安全预览:先看要怎么改,再动手
不确定效果?加个 echo 预演一遍:
- 输入:
for file in old_*; do echo mv "$file" "new_${file#old_}"; done - 终端会逐行打印出将要执行的 mv 命令,确认无误后再把
echo删掉运行。
本文共计566个文字,预计阅读时间需要3分钟。
使用终端命令批量重命名带有特定前缀的文件,关键在于使用精确匹配的选项。以下是一个简单的示例命令,它使用系统自带的for循环和mv命令来重命名特定格式的文件:
匹配并移除指定前缀(例如删掉 “draft_”)
假设当前目录下所有文件都以 draft_ 开头,你想把它们全部改成不带这个前缀的名字:
- 先确认有哪些文件:
ls draft_* - 执行重命名:
for file in draft_*; do mv "$file" "${file#draft_}"; done
说明:${file#draft_} 是 Bash/Zsh 的参数扩展语法,表示“从左边去掉第一个匹配的 draft_”,比用 sed 更轻量、更可靠。
匹配并替换成新前缀(例如把 “old_” 换成 “new_”)
如果原文件是 old_config.txt、old_log.json,你想统一改为 new_config.txt、new_log.json:
- 运行命令:
for file in old_*; do mv "$file" "new_${file#old_}"; done
注意:这里用的是 ${file#old_} 去掉旧前缀,再拼上新前缀,避免误改文件名中间或后缀里偶然出现的 “old_”。
只处理特定类型,且保留原扩展名
比如只想改 old_ 开头的图片,且确保 .jpg/.png 不被破坏:
- 命令:
for file in old_*.jpg old_*.png; do [ -n "$file" ] && mv "$file" "final_${file#old_}"; done
[ -n "$file" ] 是防错机制——当没匹配到任何文件时,通配符会原样保留,这行判断能跳过无效执行,避免创建错误文件名。
加个安全预览:先看要怎么改,再动手
不确定效果?加个 echo 预演一遍:
- 输入:
for file in old_*; do echo mv "$file" "new_${file#old_}"; done - 终端会逐行打印出将要执行的 mv 命令,确认无误后再把
echo删掉运行。

