システム開発における試験ログなど、ファイル名に現在の日時を付与したくなることがあります。
開発環境がLinuxであれば、それ自体はdateコマンドを使うことで対応できます。
ただ、使用頻度が思いのほか高くないため、いざ使いたいと思ったときにオプションやフォーマットの指定方法などが思い出せないといったことがあると思います。
そこで、この記事ではLinuxにおけるdateコマンドで
・現在の日時を確認したい
・現在の日時を任意の形式(フォーマット)でカスタマイズして出力したい
・現在の日時をファイル名などに使いたい
といった場合に役立つ使い方を紹介します。
dateコマンドとは
Linuxで日時に関する情報を出力するためのコマンドです。
ファイル名への日時付与など、日時の情報を扱う場面でよく利用されます。
dateコマンドの基本的な使い方
現在の日時を出力する
$ dateSat Jan 09 00:24:37 JST 2026上記は、オプションなしでdateコマンドを実行した場合の例です。
出力形式は環境によって異なる場合がありますが、このように「曜日、月、日、時刻、タイムゾーン、年」といった情報が出力されます。
任意の形式(フォーマット)で日時を出力する
dateコマンドを実行する際、形式(フォーマット)を指定することで、
日時の出力形式を自由にカスタマイズすることができます。
$ date +%Y%m%d20260109%Yは年(西暦)、%mは月、%dは日を表しています。
また、次のように%H、%M、%Sを指定することで、時・分・秒も出力できます。
$ date "+%Y-%m-%d %H:%M:%S"2026-01-09 00:30:10フォーマットに半角スペースを含みたい場合は、シングルクォート(’)やダブルクォート(”)で囲んで指定します。
現在からn日後、n日前の日付を出力する
“–date ‘n day'”と書くことでn日後、さらに後ろに”ago”と付けることでn日前など、未来や過去の日付を出力できます。
現在から1日後の日付を出力する
$ date +%Y%m%d --date '1 day'20260110また、少しややこしい気もしますが、負の数を指定することもできます。
たとえば、-1を指定した場合だと、-1日後(=1日前)の日付が出力されます。
現在から1日前の日付を出力する
$ date +%Y%m%d --date '1 day ago'20260108現在から1ヶ月後の日付を出力する
$ date +%Y%m%d --date '1month'20260209このとき、5/31を起点として1ヶ月後の日付を出力する場合、
6/31は存在しないため、7/1が出力されます。
現在から1年後の日付を出力する
$ date +%Y%m%d --date '1year'20270109このとき、2024/02/29を起点として1年後の日付を出力する場合、
2025年はうるう年ではないため、2025/03/01が出力されます。
1970年01月01日 0:00:00(UTC)からの経過秒数を出力する
下記のようにコマンドを実行することで1970年01月01日 0:00:00(UTC)からの経過秒数を出力できます。
$ date +%s1767974479一応、次のようにコマンドを実行することで、取得した経過秒数を年月日_時分秒に変換することもできます。
$ date +%Y%m%d_%H%M%S --date="@1767974479"20260110_010119なお、使う機会がどれくらいあるのかは不明……。
現在時刻をミリ秒/マイクロ秒/ナノ秒単位で表示する
次のようにコマンドを指定することでミリ秒、マイクロ秒、ナノ秒単位での出力もできます。
現在時刻をミリ秒単位で出力する
$ date +%Y%m%d_%H:%M:%S.%3N20260110_01:08:28.860現在時刻をマイクロ秒単位で出力する
$ date +%Y%m%d_%H:%M:%S.%6N20260110_01:08:45.260406現在時刻をナノ秒単位で出力する
$ date +%Y%m%d_%H:%M:%S.%N20260110_01:08:55.505259662これらは、エンジニアな人だとそこそこ使う機会もあるかと思います。
dateコマンドの実用例
dateコマンドの出力をファイル名に利用する
$ touch test_$(date +%Y%m%d).log$ ls
test_20260109.log上記は、date +%Y%m%d の出力結果をファイル名の一部として利用する例です。
これにより、実行した日付がわかるファイルを簡単に作成することができます。
また、viなどのエディタを起動する際にも、dateコマンドの出力をファイル名として利用できます。
$ vi test_$(date +%Y%m%d).logまとめ
この記事では、Linuxにおける dateコマンドの基本的な使い方について紹介しました。
dateコマンドを使用することで、
・現在の日時を確認する
・任意の形式(フォーマット)で日時を出力する
・日時をファイル名などに使う
といったことが簡単に行えます。
フォーマットを指定して日時を出力できる点は、試験ログの整理など開発業務の場面でも役に立ちます。
dateコマンドは使用頻度こそ高くはないですが、
このように覚えておくと「いざというとき」に便利なコマンドです。
本記事が、dateコマンドの使い方を振り返る際の参考になれば幸いです。

コメント