插件窝 干货文章 linux重命名文件方法有哪些

linux重命名文件方法有哪些

文件 命名 bash 示例 521    来源:    2025-04-16

在Linux系统中,重命名文件有多种方法,以下是常用的几种方式及其详细说明:


1. mv 命令(最常用)

  • 功能:移动或重命名文件/目录
  • 语法bash mv [选项] 源文件 目标文件
  • 示例bash mv oldname.txt newname.txt # 重命名文件 mv dir1 dir2 # 重命名目录(dir2不存在时)
  • 选项
    • -i:交互模式(覆盖前提示确认)。
    • -n:禁止覆盖已存在文件。
    • -v:显示操作详情。

2. rename 命令(批量重命名)

  • 功能:基于正则表达式批量重命名文件
  • 语法(Perl版本,常见于Ubuntu/Debian): bash rename 's/原字符串/新字符串/' 文件匹配模式
  • 示例bash rename 's/old/new/' *.txt # 将所有.txt文件的"old"替换为"new" rename 'y/A-Z/a-z/' * # 将所有文件名转为小写
  • 注意
    • 不同Linux发行版的rename可能不同(如CentOS默认使用简单版本),需确认版本: bash rename --version

3. mmv 命令(高级批量重命名)

  • 需安装sudo apt install mmv(Debian/Ubuntu)
  • 语法bash mmv "原模式" "目标模式"
  • 示例bash mmv "*.old" "#1.new" # 将所有.old后缀改为.new mmv "file_??.txt" "file_#1#2" # 删除文件名中的下划线

4. 图形界面操作

  • 文件管理器(如Nautilus、Dolphin):
    1. 右键点击文件 → 选择“重命名”(或按F2)。
    2. 输入新名称后确认。

5. Bash循环(自定义批量操作)

  • 示例:为所有.jpg文件添加前缀
    bash for file in *.jpg; do mv "$file" "prefix_$file"; done

6. find + mv 组合(递归操作)

  • 示例:递归重命名所有.log文件为.bak
    bash find /path -type f -name "*.log" -exec sh -c 'mv "$0" "${0%.log}.bak"' {} \;

⚠️ 注意事项:

  1. 覆盖风险:若目标文件已存在,mv会直接覆盖(建议用-i-n选项)。
  2. 权限问题:需对文件所在目录有写权限。
  3. 特殊字符:文件名含空格或特殊符号时,用引号包裹(如"my file.txt")。

总结:

  • 单个文件 → mv
  • 批量重命名 → renamemmv
  • 复杂需求 → Bash循环或find组合

根据具体场景选择合适的方法即可!