私はUNIX(特にOS X Mavericks)に関するman
ページを読んでいますls
。これが私の関心を呼び起こしました。
ファイルが過去または将来6ヶ月以上変更された場合、最後に変更された年は時間と分のフィールドの代わりに表示されます。
誰かが修正時間を未来に設定するのはなぜですか?
答え1
それはすべて基準点に依存します。おそらく、ファイルの修正時間が未来ではないファイルを見ているユーザーが過去に住んでいたのかもしれません。
それ以外の場合は、ファイルシステムを使用して任意のデータを保存でき、ファイルは任意の属性(xattr
OS Xなど)を持つ可能性があるため、誰かがファイルシステムにカレンダーなどのデータを保存し、時間属性を変更してイベントを表す欲しいですか?
答え2
ユーザーはファイルの変更時間を希望の日付(少なくとも広い範囲、通常1901〜2038)に自由に設定できます。将来の日付は、ユーザーの気まぐれや入力エラーによって引き起こされる可能性があります。将来の日付は、ファイルシステムの破損によっても発生する可能性があります。
ただし、ほとんどすべての特定のケースでは、将来の日付は、ファイルが記録されたコンピュータとファイルを表示しているコンピュータの両方で時計が無効な日付に設定された結果です。
特に、NFSやSambaなどのプロトコルを使用してファイルを共有するネットワークでは、時間の代わりに今日の日付でファイルを見ることが多いが、コンピュータ間の時計が同期されないことが多い。ファイルの日付が1秒であっても将来の日付であっても、将来の日付として表示されます。
答え3
cnstの回答に加えて、ファイルがNFSまたはCIFSを介してリモートファイルサーバー共有に保存され、クライアントとサーバーの時計がNTPを介して同期されない場合、またはそれらのいずれかが同期されると、将来のファイル変更時間が発生する可能性があります。時間は正しいですが、タイムゾーンが間違っています。
また、このls動作はBSD / OS Xに固有のものであり、POSIX標準に違反していることに注意してください。すべてではありませんが、他のほとんどのUnix実装では、ファイルが後でわずかに変更された場合は、ls
時間の代わりに年を表示します。
BSD/OS X のls
マニュアルページには、次の内容が記載されています。
ファイルが6か月以上過去または将来修正された場合
言い換えれば、あまり曖昧ではありません。
ファイルが6か月以上過去または将来修正された場合