dateコマンドでオプション指定しても動かない時
dateコマンドを実行した時に詰まってしまったのでメモ。
私はプライベートPCはMacを使っています。言うまでもなくOSはMacOSであり、MacOSはBSD系のOSです。
また、個人で使っている開発用サーバーはLinux系のサーバーを使用しています。
日付を元に条件分岐を行う処理を記述するために、dateコマンドで取得した値を引数で渡すコードを書いていました。
その日は所用があったためターミナルを二つ立ち上げ、片方はローカルのファイルの編集を、もう片方はサーバーに接続していました。
そんな時、うっかりローカルのファイルを編集するために立ち上げていたターミナルで成功したdateコマンドをサーバー上で実行したところ
dateコマンドは意図した日付を返さず、この事象になかなか気付くことが出来ませんでした。
結局はBSD系OSとLinux系OSではdateコマンドでは指定出来るオプションが違う。
という話でした。
せっかくなので、両方で一日前の日付を取得するコマンドを掲載し、結びとさせて頂きます。
BSD系OS
date -v-1d 2015年 10月 8日 木曜日 01時44分15秒 JST
Linux系OS
$ date --date "1 day" 2015年 10月 10日 土曜日 01:44:32 JST