插件窝 干货文章 linux修改文件名命令有哪些

linux修改文件名命令有哪些

文件 命名 bash 示例 622    来源:    2025-04-10

在 Linux 系统中,修改文件名的命令主要有以下几种方式,每种适用于不同场景:


1. mv 命令(最常用)

功能:移动或重命名文件/目录
语法

mv [选项] 源文件 目标文件

示例

mv oldname.txt newname.txt          # 重命名文件
mv /path/to/oldname /path/to/newname # 重命名并移动文件

常用选项: - -i:交互模式(覆盖前提示确认) - -n:禁止覆盖已存在文件 - -v:显示操作详情


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

功能:基于正则表达式批量重命名文件
语法(Perl 版本):

rename 's/原字符串/新字符串/' 文件匹配模式

示例

rename 's/foo/bar/' *.txt       # 将所有.txt文件中的"foo"替换为"bar"
rename 'y/A-Z/a-z/' *           # 将所有文件名转为小写

注意:不同 Linux 发行版的 rename 可能语法不同(如 Ubuntu 默认使用 Perl 版本,而 CentOS 可能需要安装)。


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

需先安装:

sudo apt install mmv  # Debian/Ubuntu
sudo yum install mmv  # CentOS/RHEL

示例

mmv '*.old' '#1.new'  # 将所有.old后缀改为.new

4. 图形界面工具

  • nautilus(GNOME 文件管理器)
  • thunar(XFCE 文件管理器)
    直接右键文件选择“重命名”即可。

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

示例:递归修改当前目录及子目录下所有 .txt 文件后缀为 .md

find . -type f -name "*.txt" -exec bash -c 'mv "$0" "${0%.txt}.md"' {} \;

6. Bash 循环(灵活批量操作)

示例:为所有 .jpg 文件添加前缀 photo_

for file in *.jpg; do mv "$file" "photo_$file"; done

注意事项:

  1. 覆盖风险:使用 mv 时若目标文件已存在,默认会静默覆盖,建议添加 -i 选项。
  2. 空格处理:文件名含空格时需用引号包裹(如 mv "old name" "new name")。
  3. 权限要求:对目标目录需有写权限。

根据需求选择合适的方法,简单重命名用 mv,复杂批量操作推荐 rename 或脚本。