mv
命令,基本语法为:mv 旧文件名 新文件名
,该命令也可用于移动文件位置或同时重命名多个文件。基础方法:mv
命令(最常用)
mv
(move)命令用于移动或重命名文件/目录。
语法:
mv [选项] 源文件 目标文件
重命名单个文件
mv old_filename.txt new_filename.txt
- 示例:将
report.docx
改为final_report.docx
mv report.docx final_report.docx
重命名并移动文件到其他目录
mv /home/user/docs/file.txt /home/user/archive/renamed_file.txt
覆盖保护(避免误操作)
- 添加
-i
选项:若目标文件已存在,会提示确认mv -i old.txt new.txt
- 使用
-n
选项:禁止覆盖已存在文件mv -n file.txt existing_folder/ # 若目标存在,放弃操作
批量重命名:rename
命令
适用于按规则批量修改文件名(如统一修改后缀、替换关键词)。
安装(部分系统需手动安装):
# Debian/Ubuntu sudo apt install rename # CentOS/RHEL sudo yum install prename
基础语法
rename 's/原字符串/新字符串/' 文件匹配模式
常见场景
- 修改后缀名:将所有
.jpeg
改为.jpg
rename 's/.jpeg$/.jpg/' *.jpeg
- 替换文件名中的字符:将文件名中的
space
替换为_
rename 's/ /_/g' * # "g"表示全局替换
- 添加前缀:
rename 's/^/prefix_/' *.txt
图形界面操作(适合新手)
-
文件管理器(如Nautilus、Dolphin):
- 右键点击文件 → 选择“重命名”(或按
F2
)。 - 批量操作:选中多个文件 → 右键重命名 → 按规则修改(如添加序列号)。
- 右键点击文件 → 选择“重命名”(或按
-
跨平台工具:
- 使用
Thunar
(XFCE默认管理器)的批量重命名工具:thunar -B # 打开批量重命名界面
- 使用
高级技巧:递归重命名与find
结合
递归修改子目录中的文件
find . -name "*.md" -exec rename 's/.md$/.markdown/' {} ;
- 解释:查找当前目录(含子目录)所有
.md
文件,将其后缀改为.markdown
。
配合sed
生成新文件名(复杂规则)
find . -type f -name "*.log" | while read file; do new_name=$(echo "$file" | sed 's/error/debug/') mv "$file" "$new_name" done
注意事项(避免数据损失)
- 备份重要文件:
执行批量操作前,建议备份:cp -r original_folder/ backup_folder/
- 测试命令效果:
- 使用
echo
预览mv
操作:for f in *.txt; do echo mv "$f" "${f%.txt}.text"; done
rename
命令添加-n
选项(模拟运行):rename -n 's/old/new/' *.txt # 仅显示更改,不执行
- 使用
- 避免特殊字符:
文件名含空格或特殊符号时,用引号包裹:mv "file with spaces.txt" new_name.txt
- 权限问题:
若提示Permission denied
,使用sudo
(需谨慎)或检查文件权限:ls -l filename # 查看权限 chmod u+w filename # 添加用户写入权限
方法对比
场景 | 推荐命令 | 优势 |
---|---|---|
单个文件重命名 | mv |
简单直接,无需安装 |
按规则批量修改 | rename |
支持正则表达式,高效批量处理 |
递归修改子目录文件 | find + rename |
灵活处理嵌套目录 |
图形界面操作 | 文件管理器 | 适合新手,避免命令行误操作 |
- 简单操作:优先使用
mv
命令。 - 批量处理:掌握
rename
的正则表达式。 - 安全第一:始终用
-i
或-n
测试命令,并备份关键数据。
引用说明:
mv
和rename
命令参考GNU Coreutils官方文档(https://www.gnu.org/software/coreutils/)。- 文件权限管理部分依据Linux Man Page标准(
man chmod
)。- 安全建议基于Linux系统管理最佳实践(Red Hat Enterprise Linux文档)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/26137.html