linuxにおいてその日の午前0時の時間情報の取得方法
linuxの勉強をしていて、日付を名前にしたファイル・ディレクトリを作成したり、その日作成したファイルの一覧を所得したりするのにコマンド実行時の日付の午前0時時点の情報が欲しいのでその取得方法をまとめてみる。
dateコマンド
dateコマンドはオプションなしでは次のように出力される。(次の例は私の実行環境での出力例)
$ date
Wed Dec 15 10:21:22 JST 2021
これに一重または二重引用符で囲んだフォーマットで出力する書式を指定できる
- 書式の先頭には+を置くこと。
- +を引用符の中においても外においても機能する場合がある
- 年: %Y
- 月: %m
- 日: %d
- 時間: %H %I
- 24時間制なら前者、12時間制なら後者
- 分: %M
- 秒: %S
- 閏秒への対応により挙動が異なる場合がある。
時間に関しては今回は午前0時時点の時間が欲しいので具体的な値を書き込む。
また、必要に応じてスラッシュやハイフンといった区切り文字も挿入できる。
よって次のように打ち込むことで実行日時の午前0時時点の時間情報を取得できる
$ date "+%Y%m%d 00-00-00"
20211215 00-00-00
変数に入れる場合でスペースを入れるときは異なる引用符をスペースを空けずに書く。この辺は他にいい方法があるのかもしれない。
$ today=`date +%Y%m%d`" 00-00-00"
$ echo $today
20211215 00-00-00
$
日付を名前にしたディレクトリやファイルを作成する場合も利用できる
$ mkdir `date +%m`
$ ls
12
$ touch 12/`date +%d`.txt
$ ls 12
15.txt