ファイルのタイムスタンプを変数に取得して、画面上に表示して、処理がすべて実行されたかを目視、将来的にはif文で確認したい
環境はMacOSとLinux(CentOS7)で同じことを実行したい
「dateコマンドでファイルのタイムスタンプ」と検索すると、
$ date '+%Y/%m/%d %H:%M' -r test.sh
2022/11/11 11:27
と、わかった。
ふむふむ、これを検索したMac上で実行すると、エラーメッセージ
~$ date '+%Y/%m/%d %H:%M' -r test.sh
date: illegal time format
usage: date [-jnRu] [-r seconds|file] [-v[+|-]val[ymwdHMS]]
[-I[date | hours | minutes | seconds]]
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
メッセージをよく読んでからオプションを変更して再実行
~$ date -r test.sh "+%Y%m%d"
20221111
Linux(CentOS)に戻ってMacOSで使った形式を実行すると、MacOSと同じ書き方でも実行できました。
[hoge ~]$ date -r test.sh "+%Y%m%d"
20221111
[hoge ~]$ date "+%Y%m%d" -r test.sh
20221111
ということで、MacOSでもLinuxでも、環境を意識せずに、
指定したファイルのタイムスタンプを取得して、変数に格納するにはこうすればいい、とわかりました
~$ filedate=`date -r test.sh "+%Y%m%d"`
~$ echo $filedate
20221111