Linux|dateコマンドのフォーマットと便利な使い方|具体例あり

Linuxコマンドを勉強したい人向け

 この記事は、Linux初心者向けの記事です。
dateコマンドについて知りたい人

dateコマンドについて知りたい人
「dateコマンドでフォーマットを指定したいです。どうすればいいでしょう?また実行結果を使ってディレクトリやログファイルのファイル名にするにはどうしたらいいでしょうか」

こんな疑問に答えます。

本記事では、dateコマンドにフォーマットを指定して出力する方法を解説し、具体例を示します。

本記事の内容

dateコマンドをフォーマット指定して実行する構文

dateコマンドをフォーマット指定して実行する構文

$ date “+《フォーマット》”

dateコマンドでは、様々なフォーマットを指定することができます。順に解説します。

dateフォーマットを指定する具体的な例

dateフォーマットを指定する具体的な例

dateコマンドをフォーマット指定して実行する例を以下に示します。

$ date "+%F"                      #年月日を出力
2020-01-24

$ date "+%T"                      #時分秒を出力
19:38:49

$ date "+%Y/%m/%d %T"             #年月日と時分秒を出力
2020/01/24 19:32:51

$ date "+%Y/%m/%d(%a) %H:%M:%S"   #年月日・曜日と時分秒を出力
2020/01/24(金) 19:34:46

dateフォーマットの便利な使い方1:
日付つきのディレクトリを作る

dateフォーマットの便利な使い方:日付つきのディレクトリを作る

その日の日付が付いたディレクトリを作ります。一時的なワークファイルを格納したり、バックアップなどに便利です。

$ d=`date "+%Y%m%d"`    #年月日を取得
$ mkdir Directory_$d    #日付付きディレクトリを作成
$ ls

実行結果は以下の通りです。
[実行結果]

Directory_20200124

dateフォーマットの応用:明日の日付のディレクトリを作る

-dオプションと組み合わせることで、明日や昨日日付のディレクトリやファイルを作成することができます。

$ d=`date -d tomorrow "+%Y%m%d"` #明日の年月日を取得
$ mkdir Directory_$d             #明日の日付付きディレクトリを作成
$ ls

実行結果は以下の通りです。
[実行結果]

Directory_20200125

dateフォーマットの便利な使い方2:
時分秒のついたファイルを作る

dateフォーマットの便利な使い方:時分秒のついたファイルを作る

時分秒までついたファイルを作ります。一日数回動くような処理のログファイル名などに使うと便利です。

$ tm=`date "+%Y%m%d%H%M%S"` #年月日時分秒を取得
$ touch file_$tm            #年月日時分秒付きのファイルを作成
$ ls

実行結果は以下の通りです。
[実行結果]

file_20200124200724

この例で一度変数($tm)に結果を格納しているのは、後続の処理でファイルをmvしたりechoして出力するときにこの年月日時分秒を使いまわせるようにするためです。

dateコマンドで時分秒のついたログを出力する

dateコマンドで時分秒のついたログを出力する例です。

tm1=`date "+[%Y/%m/%d %T]"` #年月日時分秒を取得
echo "${tm1}ShellScript Start"
sleep 5
tm2=`date "+[%Y/%m/%d %T]"` #年月日時分秒を再取得
echo "${tm2}ShellScript End"

実行結果は以下の通りです。
[実行結果]

[2020/01/25 19:59:59]ShellScript Start
[2020/01/25 20:00:04]ShellScript End

dateコマンド フォーマット一覧

dateコマンド フォーマット一覧

%a 曜日の省略名 (Sun、日)
%A 曜日名 (Sunday、日曜日)
%b 月の省略名 (Jan)
%B 月名 (January)
%c 日付と時刻
%C 世紀
%d 日
%D 日付(mm/dd/yy)
%F 日付(%Y-%m-%d)
%H 時 (24時間形式、00〜23)
%I 時 (12時間形式、01〜12)
%j 年の開始日からの日数 (001〜366)
%m 月 (01〜12)
%M 分 (00〜59)
%n 改行
%p AM または PM の表示
%P %p の小文字表示
%r 12時間表示での時刻
%R 24時間表示での時刻
%s UTC (1970-01-01 00:00:00) からの秒数
%S 秒 (00〜60)
%t 水平タブ
%T 時刻
%u 曜日(1〜7、1が月曜日)
%w 曜日(0〜6、0が日曜日)
%x 日付
%X 時刻
%y 西暦(00〜99)
%Y 西暦

出典:Webkaru – date – システムの日付や時刻の表示・設定 – Linuxコマンド 

おわりに

今回は以上です。Linuxのdateコマンドでフォーマットを指定して使う方法と具体例を解説しました。参考になりますと幸いです。

Blog TOP  Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ

Linux&Linuxコマンドを勉強したい人向けの記事もくじ

用語解説・技術一般

  "UNIXとLINUX"の違いについて解説します
  CUIとGUIの違い・特徴について解説します

サーバリソースを確認するコマンドの使い方

  【Linux】CPU使用率を確認する3つの方法を解説します
  【Linux】topコマンドで,CPU消費の原因を特定する方法
  【Linux】ps実行時に-efオプションを付ける理由について
  【Linux】メモリ使用率を確認する|容量・空きの確認も
  【Linux】ディスク容量を確認する|ディスク容量監視も

ファイル操作に関するコマンドの使い方

  【Linux】ファイルの行数をカウントする方法を解説
  【Linux】文字コード変換ならiconvコマンド1択です
  【Linux】/dev/nullを、エンジニアが使う2つの目的
  【Linux】findのexecオプションの使い方とその注意点
  【Linux】findの結果から圧縮ファイルを作るコマンド
  【Linux】hostsの場所はどこ?→/etc/hostsにあります
  【Linux】touchコマンドで,時刻更新&空ファイル作成

Linux管理者用コマンドの使い方

  【Linux】再起動コマンド(shutdown)の使い方と注意点

よく使う便利なコマンドの使い方

  【Linux】改行なしでechoコマンドを使う時の -nオプション
  【Linux】sleepコマンドの使用例と注意点について解説する
  【Linux】rmコマンドでディレクトリを削除する方法を解説
  【Linux】ファイルを削除するコマンド2選【rm以外もあり】
  【Linux】awkの区切り文字を指定する,-Fオプションを解説
  【Linux】sedで文字列の置換をするeオプションを解説する
  【Linux】dateコマンドのフォーマットとその便利な使い方
  【Linux】大文字から小文字に変換する方法【小文字から大文字も】

シェルの便利機能

  【Linux】コマンド履歴を検索する【Ctrl+r】