1. 現在の日時

バックアップのファイル名に"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