ディレクトリ内の複数のファイルのファイル拡張子の前に現在の日付を追加するには?

ディレクトリ内の複数のファイルのファイル拡張子の前に現在の日付を追加するには?

ディレクトリ内の複数のファイルのファイル拡張子の前に現在の日付を追加するには?

ソースファイル:

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

おすすめ記事