特定のファイルの経過時間を少なくとも数日で取得するにはどうすればよいですか?
私はls -lh
をよく知っています および同様のコマンド。このように機能するものが必要です:
getfage <FILE> # prints out '12d' (12 days)
また、これはMac OS Xでも使用したいので、ある程度クロスプラットフォームである必要がありますが、主な使用例はLinuxボックスです。
注
Linuxは作成時間を追跡しないため、私は2つの解決策を探しています。1つは mtime用です。 (Linux)–これはファイルが最後に変更されたとき –もう1つはMac OS X用で、 mtimeを処理できます。 または作成時間。
承認された回答:
Unixは作成日を追跡しません。利用できる唯一の情報は、通常、ファイルが最後にあったときです:
- アクセス
- 変更
- 変更
- アクセス–ファイルが最後に読み取られた時刻
- 変更–ファイルが最後に変更されたとき(コンテンツが変更されたとき)
- 変更–ファイルのメタデータが最後に変更された時刻(権限など)
(この回答から )
stat
を使用して、特定のファイルに関連する日付を取得できます コマンド。
例
$ stat ffmpeg
File: `ffmpeg'
Size: 19579304 Blocks: 38248 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 10356770 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-11-26 10:49:09.908261694 -0500
Modify: 2013-11-02 17:05:13.357573854 -0400
Change: 2013-11-02 17:05:13.357573854 -0400
OSXとHFS
OSXを使用している場合、そのUnixで使用されているファイルシステムはHFSです。これは、他のUnixと同様に、ファイルシステム内で作成日を保持し、変更時刻などを保持する数少ない(私が知っている)ものの1つです。
抜粋
ファイルレコードには、CNID、ファイルのサイズ、3つのタイムスタンプ(ファイルが作成されたとき、最後に変更されたとき、最後にバックアップされたとき)、データの最初のファイルエクステント、リソースフォーク、およびポインターなど、ファイルに関するさまざまなメタデータが格納されます。エクステントオーバーフローファイル内のファイルの最初のデータおよびリソースエクステントレコードに。ファイルレコードには、作成者コード、タイプコード、ファイルが表示されるウィンドウ、ウィンドウ内の位置など、ファイルに関する属性を格納するためにFinderが使用する2つの16バイトフィールドも格納されます。
タイムスタンプ
タイムスタンプは常にファイルシステムで維持されるため、タイムスタンプを介して提供される時間追跡(EXT3、EXT4、XFSなど)によって制限されます。
関連:InnoDBがすべてのデータベースを1つのファイルに保存するのはなぜですか?ファイルシステム
興味がある場合は、このWikipediaのトピック「ファイルシステムの比較」を参照してください。これには、私が知っているファイルシステムの最も広範なリストと、さまざまな機能の優れた表、および特定のファイルシステム内でサポートされているかどうかのステータスが含まれています。
参考資料
- ファイルの作成日を確認するには?
- lsを実行してから、作成した日付で結果を並べ替えるにはどうすればよいですか?
- 日曜日に作成されたファイルを一覧表示する
- ファイルの作成/作成時間を取得しますか?
- Unix時間が1970-01-01から始まるのはなぜですか?