Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

OS Xのdateコマンドをぶん投げたくなったら、coreutilを入れて上書きしてしまうのも手

皆様よくご存知の通り、OS Xのdateコマンドは独特です

$ date
2015年 7月14日 火曜日 23時49分50秒 JST

一部オプションも使えないときました。

$ date -d "yesterday"
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

これでは困る場合、coreutilを突っ込んでGNU版の環境を作ってやるのも手です

導入法

$ brew install coreutil

コマンド名を上書きしたいんだって場合は以下の指示に従ってください。
環境変数に取り込むとホントに上書きされます。
ご利用は計画的に

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:

MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

動作

デフォルトであれば、各コマンドはアタマに"g"をつけて使います。

$ gdate
火  7 14 23:58:33 JST 2015

何かと便利な-dオプションも使えるようになってます。

$ gdate -d "yesterday"
月  7 13 22:46:45 JST 2015

英語にしたい場合は、LANG=C

LANG=C gdate
Tue Jul 14 23:42:32 JST 2015