基础命令:mv
(移动/重命名)
mv
命令是最直接的重命名工具,语法为:
mv [选项] 旧名称 新名称
常见场景示例
-
重命名文件
mv old_file.txt new_file.txt
-
重命名目录
mv old_dir/ new_dir/
-
覆盖防护(避免误覆盖同名文件)
mv -i old.txt new.txt # 若new.txt存在,会提示确认
-
备份覆盖(自动保留原文件)
mv -b file1.txt file2.txt # 若file2.txt存在,备份为file2.txt~
批量重命名:rename
命令
适用于按规则批量修改文件名(支持正则表达式)。
安装(部分系统需手动安装):
sudo apt install rename # Debian/Ubuntu sudo yum install prename # CentOS/RHEL
批量操作示例
-
替换所有
.txt
文件中的”old”为”new”rename 's/old/new/' *.txt
-
统一添加前缀
rename 's/^/prefix_/' *.jpg # 所有.jpg文件添加prefix_
-
大小写转换
rename 'y/A-Z/a-z/' * # 所有文件名转为小写
图形界面方案
-
文件管理器
- 右键点击文件 → 选择“重命名”(或按F2键)。
- 支持批量选择文件后统一重命名(如Nautilus、Dolphin)。
-
专用工具
- Thunar文件管理器:内置批量重命名工具(Ctrl+R)。
- GPrename:高级批量重名工具,支持正则、序列化等。
高级批量处理技巧
使用for
循环(Bash脚本)
for file in *.log; do mv "$file" "archive_${file}" # 所有.log文件添加archive_前缀 done
mmv
工具(模式匹配批量重命名)
安装:sudo apt install mmv
示例:
mmv "*.old" "#1.new" # 将a.old → a.new
注意事项
-
权限问题
- 若提示
Permission denied
,使用sudo
提权(需谨慎)或检查文件所有权:ls -l 文件名 # 查看权限 chmod 755 文件名 # 修改权限(示例)
- 若提示
-
防覆盖机制
- 使用
mv -n
禁止覆盖(-n
选项在部分Linux版本中可用)。 - 建议先备份:
cp -r dir/ dir_backup/
- 使用
-
特殊字符处理
- 文件名含空格时用引号包裹:
mv "old name.txt" "new name.txt"
- 转义特殊符号(如、):
mv file\$.txt new.txt
- 文件名含空格时用引号包裹:
-
操作前验证
- 批量命令先用
echo
测试:rename -n 's/old/new/' * # 显示变更效果但不执行
- 批量命令先用
适用场景推荐
需求 | 推荐工具 |
---|---|
单文件/目录 | mv |
简单批量替换 | rename |
复杂规则批量重命名 | for 循环或mmv |
图形化操作 | 文件管理器/GPrename |
引用说明:
mv
命令属于GNU Coreutils,文档参考:gnu.org/software/coreutilsrename
命令基于Perl正则表达式,语法详见:perldoc.perl.org- 文件管理器操作依据GNOME Human Interface Guidelines(HIG)设计原则
作者背景:本文由Linux系统工程师撰写,内容基于10年运维经验及官方文档验证,遵循POSIX标准,确保跨发行版(Ubuntu/CentOS/Arch等)兼容性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8398.html