

So to list files sorted by creation/birth date/time, you can use: ls -lt -time=birth UPDATE 2021: the new ls command optionĪccording to Stéphane Chazelas, the ls version from coreutils 8.32 (and glibc 2.28, and kernel 4.11) is now capable of using the new statx(2) system call (see end of this answer) to extract the creation time metadata. Note: this answer mainly covers Linux systems. There is just no standard way to get it, but there is a way: However, some filesystems (as ext4 or XFS), do save this information within the file metadatas. Unfortunately, the stat(2) API does not provide a way to get the file creation time, as it is not required by the Unix standards. In particular, the ctime is always more recent than the mtime (file content modification time) unless the mtime has been explicitly set to a date in the future. The inode change time is updated whenever anything about the file changes (contents or metadata) except that the ctime isn't updated when the file is merely read (even if the atime is updated). Note that the ctime ( ls -lc) is not the file creation time, it's the inode change time. The stat utility can show the creation time, called “birth time” in GNU utilities, so under Cygwin you can show files sorted by birth time with stat -c '%W %n' * | sort -k1n. Windows also stores a creation time, but it's not always exposed to ports of unix utilities, for example Cygwin ls doesn't have an option to show it.

For example, on Mac OS X (the only example I know of), use ls -tU. If your unix variant has a creation time, look at its documentation. If you need creation time, use a version control system: define creation time as the check-in time. You can't make ls print it because the information is not recorded. Most unices do not have a concept of file creation time.
