デートのおはなし

UNIX - Server
UNIX - Server / rudolf_schuba

date コマンドでハマったお話。

そして、
date には "GNU date" と "BSD date" がある、と言うのが、この度のオチ。

» Mac の bash で date を使って先月の今日の日付を取ろうとしたらハマった - ウェブル
» GNU dateとFreeBSD date - mumumuの日記

背景

windows 環境での unix 的作業は、mingw32 を導入することで叶えていたりする。
そんな環境下で利用していた、とある処理を、mac (osx 10.9 Mavericks) に持って行って、何の疑いもなく、いつもの要領で実行したら...

見たことないエラーを豪快に吐いてくる。
何度かリトライするも結果は同じ。

良く見ると、date コマンドの所らしい。

再び win マシンに持って行って、同じソースを改めて実行してみる。
と、上手く行く。

何か、面倒なことになりそう、と嫌な予感を抱えつつ
作業に入る。

そしてこの度、
度々目にはしてきてはいたものの、全く気に掛けることのなかった GNU とか BSD とかって、こういう事なんだ、と。

この "違い" を体感する。

osx は BSD UNIX ベースなんだ

この事を意識しておく必要がある、
これ今回学んだ事。

実際、appleman date 見ると、タイトルに BSD General Commands Manual とありますね。

と、知ってしまえば
「ま、そりゃ動かないわな」と。orz

この GNU とか BSD ってのはちょくちょく目にはしてたんですが、全然意識していませんでした。

全く以て同じであります。

GNU 系(?)のソレと BSD 系(?)のソレとがあり、
この違いに因るところで、お互い同じ名を名乗りつつも使い方やら挙動が異なる、そんなコマンドが存在するらしい、と言う事。

そして、そんなもんだから、
今後は、それが BSD ベースの情報であるか否かについても意識しつつ捉える必要がある、と言う事。

気をつけましょう。

はい、おしまい。