バックアップのファイル名に"backup_20180115_1200.txt"のように日時情報を付けるケースは良くあります。 そのような日時情報を持ったファイル名の作成では、dateコマンドを使用します。
dateコマンドを使って変数を定義する場合は以下のようになります。
date [オプション] [フォーマット]
コマンドラインで以下のように入力して実行すると。
date +%Y-%m-%d以下のように年月日が表示されます。
2018-02-01
フォーマットで日時指定によく使うものは以下になります。
%Y | 西暦の年4桁 |
%y | 西暦の年の下2桁(00..99) |
%m | 月2桁 (01..12) |
%d | 日2桁 (01..31) |
%H | 時間2桁 (00..23) |
%M | 分2桁 (00..59) |
%S | 秒2桁 (00..59) |
%s | Unix time (1970-01-01 00:00:00 UTC からの秒数) |
現在の日時
現在の日時をファイル名に使用するサンプル
-
年を4桁、月日時分秒を2桁の数値
年を4桁、月日時分秒を2桁の数値で連続して表示する場合、以下のようにします。
#!/bin/bash FNAME=backup_`date +%Y%m%d%H%M%S`.bak echo $FNAMEこれを実行すると、結果は以下のようになります。
backup_20180122191718.bak
年月日と時分秒との間にアンダーバーやハイフンを入れる場合は、以下のようにします。
#!/bin/bash FNAME=backup_`date +%Y%m%d_%H%M%S`.bak echo $FNAMEこれを実行すると、結果は以下のようになります。
backup_20180122_191718.bak
年月日時分秒を2桁の数値
年月日時分秒を2桁の数値で連続して表示する場合、以下のようにします。 2桁の年は%yを指定します。
#!/bin/bash FNAME=backup_`date +%y%m%d%H%M%S`.bak echo $FNAMEこれを実行すると、結果は以下のようになります。
backup_180122191718.bak
年月日と時分秒との間にアンダーバーやハイフンを入れる場合は、以下のようにします。
#!/bin/bash FNAME=backup_`date +%y%m%d-%H%M%S`.bak echo $FNAMEこれを実行すると、結果は以下のようになります。
backup_180122-191718.bak
ユニックスタイム
ユニックスタイムの場合は、"%s"を指定します。
#!/bin/bash FNAME=backup_`date +%s`.bak echo $FNAMEこれを実行すると、結果は以下のようになります。
backup_1517492706.bak