web-dev-qa-db-ja.com

ubuntuでファイルの作成時間を知る方法はありますか?

私はubuntuを使用していますが、ファイルが変更またはアクセスされた場合でも、ファイルの作成時間を知りたいですか?

14
fenec

残念ながら、Unixはファイルの作成時間を保存しません。

statを使用して取得できるのは

  1. 最後のアクセスの時間
  2. 最終変更時刻
  3. 最後のステータス変更の時刻

注:ファイルシステムタイプを使用する場合ext4crtime =利用可能です!

23
Thariama

この小さなスクリプトは、ext4の作成日を取得できます。

#!/bin/sh

fn=`realpath $1`
echo -n "Querying creation time of $1..."
Sudo debugfs -R "stat $fn" /dev/sda4|grep crtime

fcrtimeという名前を付けて、~/binフォルダーに入れました。したがって、どのフォルダでも、次のようなコマンドを使用できます:fcrtime example.odp

出力例:

crtime: 0x5163e3f0:12d6c108 -- Tue Apr 9 12:48:32 2013

同じファイルの統計と比較して:

  File: `example.odp'
  Size: 54962       Blocks: 112        IO Block: 4096   regular file
Device: 804h/2052d  Inode: 11019246    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/   fulop)   Gid: ( 1000/   fulop)
Access: 2013-04-09 13:20:05.263016001 +0300
Modify: 2013-04-09 13:20:05.227016001 +0300
Change: 2013-04-09 13:20:05.227016001 +0300
 Birth: -

[〜#〜] notes [〜#〜]

  1. realpathは通常、デフォルトではインストールされません。 Ubuntuでは例えば。 Sudo apt-get install realpathでインストールします
  2. 必要に応じて、/dev/sda4mount|grep ext4から取得したものに置き換えます
3
Attila Fulop

使用可能な最も近い属性は「変更時間」であり、ctimeとも呼ばれます。これは、iノードに含まれるデータではなく、iノードを変更するさまざまなシステムコールに対して更新されます。

 matt @ stanley:〜$ stat -c%z .bashrc 
 2010-08-17 11:53:56.865431072 +1000 

リンク

3
Matt Joiner

作成時間は、ファイル誕生時間と呼ばれ、一部のファイルシステムでサポートされ、一部のカーネルのみ。コマンドは Mohsen Pahlevanzadeh 回答:

stat --printf='%w' yourfile   #human readable

stat --printf='%W' yourfile   #seconds from Epoch , 0 if unknown

注:この質問は ファイルの作成日を見つける方法 の複製です。また、この質問を必ず読んでください Linux上のどのファイルシステムが作成時間を保存しますか?

1
Franklin Piat

http://en.wikipedia.org/wiki/Comparison_of_file_systems によると、これはext4、btfrs、FAT、NTFS、UDFファイルシステムに加えて、遭遇する可能性が低い他のいくつかのファイルシステムで利用できます。おそらくUbuntuで最も一般的なファイルシステム形式であるext2またはext3では使用できません。

ただし、カーネルパッチが必要です: http://lwn.net/Articles/394391/ 。どうやらこれは、誰かがそれを「otime」と呼び、他の誰かがそれを「btime」と呼んだという理由で、Linusが作成時間属性を拒否したためです。したがって、このアイデアは役に立たないに違いありません。

1
MSalters