Linux下如何批量重命名文件并将新旧文件名对应保存到文本文件
Linux下批量重命名pdb文件并生成映射关系操作方法
前置准备
先进入存放所有.pdb文件的目标目录:cd /path/to/your/pdb/files
步骤1:验证文件排序(必须操作)
重命名的顺序由文件排序规则决定,执行以下命令确认输出的文件顺序符合你的预期:ls -v *.pdb
- 上述命令为自然排序,不会出现
file1、file10、file2的错误排序问题 - 如果你需要按文件修改时间从旧到新排序,替换为
ls -tr *.pdb - 如果你需要按文件修改时间从新到旧排序,替换为
ls -t *.pdb
步骤2:试运行验证重命名逻辑(建议操作)
先执行以下命令,不会实际修改文件,仅输出即将执行的重命名操作和映射关系,确认符合预期后再执行实际操作:
count=1 > filename_mapping.txt for old_name in $(ls -v *.pdb); do new_name="L${count}.pdb" echo "${old_name} -> ${new_name}" >> filename_mapping.txt echo "即将执行重命名:mv ${old_name} ${new_name}" count=$((count+1)) done
检查输出的重命名规则和filename_mapping.txt内容无误后,再执行实际重命名。
步骤3:执行实际重命名
运行以下命令完成重命名,同时生成映射文件:
count=1 > filename_mapping.txt for old_name in $(ls -v *.pdb); do new_name="L${count}.pdb" echo "${old_name} -> ${new_name}" >> filename_mapping.txt mv -- "${old_name}" "${new_name}" count=$((count+1)) done
适配低版本/极简环境方案
如果你的系统ls命令不支持-v参数,将遍历的$(ls -v *.pdb)替换为$(find . -maxdepth 1 -type f -name "*.pdb" | sort -V | sed 's|^\./||')即可。
注意事项
- 操作前建议先备份所有原始.pdb文件,避免误操作导致文件丢失
- 生成的
filename_mapping.txt存放在当前操作目录下,每行为旧文件名到新文件名的对应关系
内容的提问来源于stack exchange,提问作者Mahesh Ranjan
相关产品推荐
相关产品推荐

