Get file creation time with Python on linux
try:
st_birthtime
It isnt' guaranteed to be available on all systems though. From the docs:
On some Unix systems (such as Linux), the following attributes may also be available: st_blocks (number of blocks allocated for file), st_blksize (filesystem blocksize), st_rdev (type of device if an inode device). st_flags (user defined flags for file).
On other Unix systems (such as FreeBSD), the following attributes may be available (but may be only filled out if root tries to use them): st_gen (file generation number), st_birthtime (time of file creation).
http://docs.python.org/2/library/os.html#os.stat
You probably can't.:
3.1) How do I find the creation time of a file? You can't - it isn't stored anywhere. Files have a last-modified time (shown by "ls -l"), a last-accessed time (shown by "ls -lu") and an inode change time (shown by "ls -lc"). The latter is often referred to as the "creation time" - even in some man pages - but that's wrong; it's also set by such operations as mv, ln, chmod, chown and chgrp. The man page for "stat(2)" discusses this.
By lack of a good utility, I've created crtime.
pip install crtime
Then you can use it like:
sudo crtime ./
Would print:
1552938281 /home/pascal/crtime/.gitignore
1552938281 /home/pascal/crtime/README.md
1552938281 /home/pascal/crtime/crtime
1552938281 /home/pascal/crtime/deploy.py
1552938281 /home/pascal/crtime/setup.cfg
1552938281 /home/pascal/crtime/setup.py
1552938961 /home/pascal/crtime/crtime.egg-info
1552939447 /home/pascal/crtime/.git
1552939540 /home/pascal/crtime/build
1552939540 /home/pascal/crtime/dist
Note that for large directories it will be easily 1000x faster than xstat
above, as this creates a temporary file and then executes stat
calls for all files at once.
In python (don't forget you need to still call it with sudo on linux):
from crtime import get_crtimes, get_crtimes_in_dir
get_crtimes_in_dir("./")