dateコマンドのフォーマットで%kとか使うとき注意

時間をファイル名につけるようなシェルスクリプト書くときに

FILE_NAME=`date +"%Y%m%d-%k%M%S"`.tar.gz

とかすると、時間が一桁(1時〜9時)だったとき、%kは空白入りの文字列になるので意図しない動作になることがある。

$ date -d "2011-07-10 01:00:00" +"%Y-%m-%d_%k:%M:%S"
2011-07-10_ 1:00:00

%Hとかを使う

$ date -d "2011-07-10 01:00:00" +"%Y-%m-%d_%H:%M:%S"
2011-07-10_01:00:00