人間が読める最後の編集タイムスタンプをファイル名に追加します。

人間が読める最後の編集タイムスタンプをファイル名に追加します。

bashを使用して、ファイルが最後に変更された時刻をファイル名に追加したいと思います。

たとえば、次のように出力されますls -la

 -rw-rw-r-- 1 beginner beginner 5382 Dec  1 17:18 B_F1-1.xml

しなければならない

 -rw-rw-r-- 1 beginner beginner 5382 Dec  1 17:18 B_F1-1_20141201T1718.xml

.のすべてのファイルに対してどのようにこれを行うことができますか?

ベストアンサー1

次のように試すことができます。

EXT=${FILE#*.}
NAME=${FILE%%.*}

mv "$FILE" "$NAME$(date --reference "$FILE" '+%Y%m%dT%H%M').$EXT"

スクリプトでdateサポートされている場合は、--reference参照されたファイルの最後の変更日を取得します。

おすすめ記事