279

Possible Duplicate:
How do I do a ls and then sort the results by date created?

Is there a command in Linux which displays when the file was created ? I see that ls -l gives the last modified time, but can I get the created time/date?

3
  • 6
    Even while "OT" as this is asking for a tool to display this information, I think it's a valuable thing for programmers to know when dealing with more UNIX-y filesystems.
    – pst
    Commented Nov 11, 2011 at 23:20
  • 4
    The command is sudo debugfs -R 'stat /path/to/file' /dev/sdaX (replace sdaX with the device name of the filesystem on which the file resides). The creation time is the value of crtime. You can add | grep .[^ca]time to list just mtime (the modification time) and crtime (the creation time).
    – The Quark
    Commented Jun 4, 2019 at 11:54
  • Some of the answers here are nearly 11 years old, and are no longer correct. This top-voted answer is recently edited/updated, and worth a look. Also - if you're interested in sorting your ls output the Possible Duplicate also has an up-to-date answer that reflects our current systems' status.
    – Seamus
    Commented Jul 15, 2022 at 23:53

3 Answers 3

224

The stat command may output this - (dash). I guess it depends on the filesystem you are using. stat calls it the "Birth time". On my ext4 fs it is empty, though.

%w Time of file birth, human-readable; - if unknown

%W Time of file birth, seconds since Epoch; 0 if unknown

stat foo.txt
  File: `foo.txt'
  Size: 239             Blocks: 8          IO Block: 4096   regular file
Device: 900h/2304d      Inode: 121037111   Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  adrian)   Gid: (  100/   users)
Access: 2011-10-26 13:57:15.000000000 -0600
Modify: 2011-10-26 13:57:15.000000000 -0600
Change: 2011-10-26 13:57:15.000000000 -0600
 Birth: -
5
  • 2
    What if we do not have the stat command installed and I cannot add the stat command to this environment? bash: stat: command not found Commented May 20, 2014 at 16:19
  • 34
    While you mention %w you don't say how to use it. I'd suggest modifying this answer to show an example command to get the creation date if it's not included by default. For example "stat -c %w file"
    – dsollen
    Commented Jul 25, 2017 at 15:43
  • 2
    I'm sorry but is simply not the right answer. I'm looking at a file that I created days ago and it's showing me the birth time was some hours ago. Commented Jul 24, 2019 at 14:53
  • 3
    Google tells me "The standard ext4 Linux file system also allocates space for a file-creation timestamp in its internal file system structures, but this hasn’t been implemented yet. Sometimes, this timestamp is populated, but you can’t depend on the values in it."
    – Tgr
    Commented Jun 15, 2020 at 13:47
  • 3
    I feel like windows has the strongest point in this case.
    – MaXi32
    Commented Jul 17, 2021 at 7:08
86

Linux offers three timestamps for files: time of last access of contents (atime), time of last modification of contents (mtime), and time of last modification of the inode (metadata, ctime). So, no, you cannot. The directory's mtime corresponds to the last file creation or deletion that happened, though.

8
  • 44
    The file creation time is actually stored in Ext4, but not directly accessible. See unix.stackexchange.com/a/50184/8250
    – Lekensteyn
    Commented Feb 16, 2013 at 10:02
  • 14
    There's a natural confusion between Linux OS, and the various filesystems that can be used with Linux. You can't just make general statements about Linux in regard to things specific to the filesystems.
    – LarsH
    Commented Dec 18, 2015 at 15:57
  • would it be correct to say that mtime >= creation time?
    – CervEd
    Commented Apr 17, 2021 at 20:03
  • 1
    @yzorg I think I understand your point but I'm not sure how volumes matter. Any copy of a file, even with cp -a will create a new inode, which will have its ctime the time the inode is created, but the same mtime (which was in the past).
    – CervEd
    Commented Nov 27, 2021 at 11:30
  • 1
    @CervEd ctime isn't creation time, but change time (change to metadate, while mtime is change to file contents) Commented Feb 5 at 2:07
14

No, there is no such a command. In Unix creation time is not stored (only: access, modification and change).

4
  • 17
    Not true in general. Some common filesystems used in Linux don't store creation time, but others do: see unix.stackexchange.com/questions/7562/…
    – LarsH
    Commented Dec 18, 2015 at 16:12
  • 4
    Some files may have metadata (such as exif) which record the creation date/time. If all of your files happen to be digital photos, you most likely have this data. Here is an example using perl's Image::ExifTool. Commented Jan 24, 2017 at 20:45
  • 3
    It depends mainly on the filesystem, for example the ext4 filesystem is storing the file creation date. Commented Oct 29, 2019 at 15:28
  • 2
    Out-of-date answer; unless you're working on vintage systems, this answer may be safely ignored.
    – Seamus
    Commented Jul 15, 2022 at 23:43