Linux下批量去除文件名中的备份附加信息
批量移除文件名中的备份日期后缀 & 无附加信息导入建议
刚从Windows转Debian系Linux,导入文件后碰到这种文件名带冗余日期后缀的情况确实挺闹心的,我给你分享几个实用的解决办法:
一、批量删除现有文件名的备份附加信息
1. 使用Perl版rename命令(Debian/Ubuntu默认预装)
针对你给出的格式(比如index (2017_12_01 15_56_03 UTC).html),可以用正则表达式精准匹配并移除日期后缀:
# 仅处理当前目录下的html文件 rename 's/ \(\d{4}_\d{2}_\d{2} \d{2}_\d{2}_\d{2} UTC\)//' *.html # 递归处理所有子目录下的所有文件 find . -type f -exec rename 's/ \(\d{4}_\d{2}_\d{2} \d{2}_\d{2}_\d{2} UTC\)//' {} +
解释:正则表达式 \(\d{4}_\d{2}_\d{2} \d{2}_\d{2}_\d{2} UTC\)会精准匹配空格+括号内的日期格式,替换为空字符串就去掉了冗余后缀。
2. 使用mmv工具(更直观的批量重命名)
如果觉得正则有点复杂,可以试试mmv,先安装它:
sudo apt update && sudo apt install mmv
然后用通配符匹配文件名结构:
# 处理当前目录下所有符合格式的文件 mmv '* (????_??_?? ??_??_?? UTC).*' '#1.#2'
解释:*匹配文件名前缀(比如index),????_??_?? ??_??_?? UTC匹配日期部分,最后的*匹配扩展名(比如html);#1和#2分别对应前缀和扩展名,组合起来就是原文件名。
二、无附加信息的重新导入方式
如果还没完成导入,或者想重新导入避免后缀问题,可以试试这些方法:
- 直接用
cp命令复制:如果备份驱动器已经挂载到Linux系统,直接用复制命令导入,不会添加任何后缀:
注意cp -r /mnt/backup-drive/* /home/your-username/target-folder/-r参数是递归复制子目录。 - 检查备份工具的设置:如果你用的是第三方备份/同步工具(比如从Windows过来的备份软件),进入工具设置,找到“冲突处理”或“备份后缀”相关选项,关闭“添加日期后缀”的功能后再重新导入。
内容的提问来源于stack exchange,提问作者Gab
相关产品推荐
相关产品推荐

