在Linux中修改文件名可通过以下方法实现,根据需求选择合适的方式:
一、使用 `mv` 命令(推荐)
基础语法
```bash
mv 原文件名 新文件名
```
例如将 `old_name.txt` 重命名为 `new_name.txt`:
```bash
mv old_name.txt new_name.txt
```
若需移动文件到其他目录,可同时指定目标路径:
```bash
mv old_name.txt /path/to/new_directory/
```
覆盖与备份选项
- 覆盖前提示(默认行为)
若目标文件已存在,直接覆盖
- 覆盖前确认(输入 `i`)
执行前询问是否覆盖
- 跳过覆盖(输入 `n`)
直接取消操作
- 备份原文件(输入 `b`)
覆盖前自动创建 `.bak` 备份
- 仅移动非空文件(输入 `u`)
当源文件较新或目标文件不存在时执行移动
二、使用 `rename` 命令(批量重命名)
适用于批量修改文件名,支持正则表达式替换:
```bash
rename 's/旧文件名/新文件名/' 文件名模式
```
例如将所有 `.log` 文件后缀改为 `.tmp`:
```bash
rename 's/\.log$/.tmp/' *.log
```
三、使用 `mmv` 命令(高级批量操作)
支持复杂模式匹配和批量重命名:
基础用法
```bash
mmv 源文件模式 目标文件模式
```
例如将 `file1.txt` 到 `file10.txt` 重命名为 `document1.txt` 到 `document10.txt`:
```bash
mmv 'file[1-10].txt' 'document1.txt'
```
添加前缀/后缀
```bash
mmv image*.jpg 'image_$(date +%Y%m%d).jpg'
```
为所有图片添加日期前缀
四、注意事项
权限问题
若文件权限不足,需使用 `sudo` 提升权限:
```bash
sudo mv 原文件名 新文件名
```
文件名规范
- 包含空格或特殊字符时需用引号括起来,例如:
```bash
mv "file name.txt" "renamed_file.txt"
```
- 文件名区分大小写,需确保新名称拼写正确
确认修改
重命名后建议使用 `ls` 命令确认文件已更新
通过以上方法,可灵活实现单个或批量文件的重命名需求。