initial vault sync

This commit is contained in:
冯先生
2026-06-23 00:24:32 +08:00
commit 8e7723c17a
795 changed files with 157458 additions and 0 deletions

View File

@ -0,0 +1,127 @@
#linux #ubuntu
在Linux命令行界面中文件重命名主要通过以下方法实现涵盖单文件重命名、批量操作及常见问题处理
---
### 📁 **​一、单文件重命名:`mv`命令​**
**​语法​**
```
mv [选项] 旧文件名 新文件名
```
**​示例​**
```
mv old_file.txt new_file.txt # 将文件重命名
mv file.txt /new/path/renamed.txt # 移动并重命名
```
**​常用选项​**
- `-i`:覆盖前确认(避免误操作)
- `-v`:显示操作详情
- `-b`:覆盖前备份原文件
**​场景​**
- 简单重命名或移动文件到新路径时使用。
---
### 🔄 **​二、批量重命名:`rename`命令Perl版**
**​安装​**​(部分系统需手动安装):
```
sudo apt install rename # Debian/Ubuntu
sudo yum install perl-rename # CentOS/RHEL
```
**​语法​**
```
rename 's/旧模式/新模式/' 文件列表
```
**​示例​**
```
rename 's/\.txt/.md/' *.txt # 扩展名.txt→.md
rename 's/old_/new_/' *.log # 文件名中old_→new_
rename 's/\s+/_/g' * # 空格替换为下划线
rename -n 's/pattern//' *.log # 仅预览不执行(-n选项
```
**​优势​**​:支持正则表达式,灵活处理复杂规则。
---
### 🔁 **​三、循环批量重命名:`for` + `mv`**
**​语法​**
```
for file in 匹配模式; do mv "$file" "新文件名"; done
```
**​示例​**
```
# 所有.txt文件添加前缀"backup_"
for f in *.txt; do mv "$f" "backup_$f"; done
# 扩展名.txt→.bak
for f in *.txt; do mv "$f" "${f%.txt}.bak"; done
```
**​适用场景​**
-`rename`命令或需简单逻辑时使用。
---
### ⚠️ **​四、注意事项与常见问题​**
1. **​权限问题​**
- 无权限时报错,使用`sudo`提权:
```
sudo mv protected_file new_name
```
2. **​文件名冲突​**
- 目标文件已存在时,`mv`会覆盖(用`-i`避免误覆盖):
```
mv -i old.txt existing.txt # 覆盖前询问
```
3. **​特殊字符处理​**
- 文件名含空格或特殊符号时,用引号包裹:
```
mv "file with spaces.txt" no_spaces.txt
```
4. **​批量操作风险​**
- 使用`rename -n`预览效果后再执行。
---
### 💎 **​五、场景推荐​**
|**​需求​**|**​推荐命令​**|**​示例​**|
|---|---|---|
|单文件重命名|`mv`|`mv a.txt b.txt`|
|批量修改扩展名|`rename`|`rename 's/\.log/.bak/' *.log`|
|文件名添加统一前缀|`for`循环|`for f in *; do mv "$f" "prefix_$f"; done`|
|复杂规则(正则表达式)|`rename`|`rename 's/\d+/sprintf("%03d", $&)/e' *`|
> 提示:操作前建议备份重要文件!批量重命名可先在测试目录验证命令效果。