如何在目录中的多个文件的文件扩展名前添加当前日期?
原始文件:
Expenses.log
Allowances.log
输出:
Expenses_20170624.log
Allowances_20170624.log
此命令在文件扩展名后面附加日期。 :(
for file in *; do mv "$file" "${file}_$(date +"%d%m%Y")"; done
答案1
使用参数扩展来分隔扩展:
#! /bin/bash
date=$(date +%Y%m%d)
for file in * ; do
basename=${file%.*} # Remove extension
extension=${file##*.} # Remove basename
mv "$file" "$basename"_"$date.$extension"
done
答案2
带短rename
命令 (珀尔执行):
rename 's/\.([^.]+)$/_'$(date +"%d%m%Y")'.$1/' *