ディレクトリ内の複数のファイルのファイル拡張子の前に現在の日付を追加するには?
ソースファイル:
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/' *