私の家のコンピュータ(Xubuntu 14.04)では
zev@home:~$ 日付+%F 2015-10-05 zev@home:~$ date+%F -d "来週月曜日" 2015-10-12
そして職場(Red Hat 5.11)では
zev@work:~$ 日付+%F 2015-10-05 zev@work:~$ date+%F -d "来週月曜日" 2015-10-05
(今日は月曜日です。)私が最初に推測したところによると、このフレーズの解釈が異なるのは、next Monday
システムのcoreutilバージョンが異なるためですdate
。
zev@home:~$ 日付--バージョン |head-2 日付(GNU coreutils)8.21 著作権(C)2013 Free Software Foundation、Inc。 zev@work:~$ 日付--バージョン |head-2 日付(GNU coreutils)5.97 著作権(C)2006フリーソフトウェア財団株式会社
私の質問は次のとおりです
プログラムバージョンの違いが
date
唯一の原因ですか、それとも日付文字列の解釈に影響を与えるシステムの他の要因がありますか?直接確認するコマンドを実行せずに、システムが1つの解釈を持っているのか、それとも別の解釈を持っているのかどうかはどうすればわかりますか?結果に影響を与える唯一の要素がバージョンである場合、
date
このunix.SEスレッドによると(Y機能を導入したXバージョンは何ですか?)プログラムの変更ログでは、どのバージョンが新しい動作を導入したかを見つけることができるはずですdate
が、リモートで同様のものが見つかりません。ここ(たぶん混乱しているかもしれません)。
答え1
rpm -qfl /bin/date
変更ログのファイルのリストを調べたところ、次の段落が見つかりました/usr/share/doc/coreutils/NEWS
。
- バージョン7.4(2009-05-07)の注目すべき変更点[安定]
バグ修正。 date -d 'next mon'は月曜日に実行されたときに現在の日付の代わりに将来の7日の日付を印刷します。同じ曜日に実行している場合は、他の曜日名にも同じように適用されます。 【このバグは「スタート」時に存在していたようです。 ]