在 Linux 系统中,修改文件名的命令主要有以下几种方式,每种适用于不同场景:
mv
命令(最常用)功能:移动或重命名文件/目录
语法:
mv [选项] 源文件 目标文件
示例:
mv oldname.txt newname.txt # 重命名文件
mv /path/to/oldname /path/to/newname # 重命名并移动文件
常用选项:
- -i
:交互模式(覆盖前提示确认)
- -n
:禁止覆盖已存在文件
- -v
:显示操作详情
rename
命令(批量重命名)功能:基于正则表达式批量重命名文件
语法(Perl 版本):
rename 's/原字符串/新字符串/' 文件匹配模式
示例:
rename 's/foo/bar/' *.txt # 将所有.txt文件中的"foo"替换为"bar"
rename 'y/A-Z/a-z/' * # 将所有文件名转为小写
注意:不同 Linux 发行版的 rename
可能语法不同(如 Ubuntu 默认使用 Perl 版本,而 CentOS 可能需要安装)。
mmv
命令(高级批量重命名)需先安装:
sudo apt install mmv # Debian/Ubuntu
sudo yum install mmv # CentOS/RHEL
示例:
mmv '*.old' '#1.new' # 将所有.old后缀改为.new
nautilus
(GNOME 文件管理器)thunar
(XFCE 文件管理器)find
+ mv
组合(递归操作)示例:递归修改当前目录及子目录下所有 .txt
文件后缀为 .md
:
find . -type f -name "*.txt" -exec bash -c 'mv "$0" "${0%.txt}.md"' {} \;
示例:为所有 .jpg
文件添加前缀 photo_
:
for file in *.jpg; do mv "$file" "photo_$file"; done
mv
时若目标文件已存在,默认会静默覆盖,建议添加 -i
选项。mv "old name" "new name"
)。根据需求选择合适的方法,简单重命名用 mv
,复杂批量操作推荐 rename
或脚本。