温馨提示×

linux怎样批量重命名文件

小樊
62
2026-10-10 10:52:07
栏目: 智能运维

在 Linux 下批量重命名文件有多种方法,下面按常用程度和场景给你介绍几种。


一、使用 rename 命令(最推荐,正则强大)

1. Debian / Ubuntu(Perl 版 rename)

rename 's/旧内容/新内容/' *.txt

示例:把所有 .txt 文件中的 file 改成 doc

rename 's/file/doc/' *.txt

批量加前缀:

rename 's/^/prefix_/' *.jpg

2. CentOS / RHEL(util-linux 版 rename)

rename 旧字符串 新字符串 文件

示例:

rename .htm .html *.htm

⚠️ 两种 rename 语法不同,先 man rename 确认


二、使用 for 循环(最通用、最安全)

示例 1:统一改后缀

for f in *.txt; do
    mv "$f" "${f%.txt}.md"
done

示例 2:加前缀

for f in *; do
    mv "$f" "backup_$f"
done

示例 3:按顺序编号

i=1
for f in *.jpg; do
    mv "$f" "image_$i.jpg"
    ((i++))
done

三、使用 mmv(适合通配符批量)

安装:

sudo apt install mmv

示例:

mmv "*.jpeg" "#1.jpg"

四、使用 find + mv(递归目录)

find . -type f -name "*.txt" -exec sh -c '
    for f do
        mv "$f" "${f%.txt}.bak"
    done
' sh {} +

五、图形界面(不敲命令)

  • Thunar(XFCE)
  • Nautilus(GNOME,装 nautilus-rename)
  • **bulkrename`(命令行但交互)

六、安全建议(很重要)

✅ 先预览:

for f in *.txt; do echo mv "$f" "${f%.txt}.md"; done

✅ 使用双引号防止空格报错
✅ 重要文件先备份


如果你有具体需求(如:

  • 按时间重命名
  • 去掉空格
  • 中文文件名
  • 递归目录
  • 正则替换

可以直接告诉我,我给你写精确命令。

0 踩