Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OSX - How to get the creation & modification time of a file from the command line

Tags:

bash

macos

While solving some programming puzzle, I wanted to see how long it took me to write a solution to the problem. To do so, I thought it'd be a good idea to compare the file creation date with the latest modification date.

In the terminal (OSX), I tried the following command and was surprised to see the same date three times in a row:

stat my_file.py 16777220 10280844 -rw-r--r-- 1 username staff 0 7214 \ "Dec  5 08:32:39 2015"  \ "Dec  5 08:32:39 2015"  \ "Dec  5 08:32:39 2015"  \ "Dec  5 08:32:39 2015" 4096 16 0 my_file.py 

The way I created then modified the file:

touch my_file.py vim my_file.py   # <- modify some content stat my_file.py 

Any idea on how to get these two dates from the command line?

Clarification: I do not want to time the execution time of the script.

EDIT : The issue was with vim changing the creation date on save, the accepted answer still answers the question in depth for those who are interested.

like image 978
Mr_Pouet Avatar asked Dec 06 '15 21:12

Mr_Pouet


People also ask

How do I find the original file creation date of my Mac?

Click the hammer icon, then click the Run button. It will let you select a Word . doc or . docx file, and then will report the created and modified date/time stamp from the selected file in a dialog box.

How do I get OSX architecture?

To determine system type for macOSOpen the Apple menu and choose About This Mac. Click the System Report button. If you do not see a System Report button, click the More Info button and then click the System Report button. Under the Hardware panel, locate the Processor Name in the Hardware Overview.

What is the latest Mac OS?

macOS Big Sur was announced on June 22, 2020, during the WWDC20 keynote speech. It was released November 12, 2020. The major version number is changed, for the first time since "Mac OS X" was released, making it macOS 11.


1 Answers

stat reports the standard Unix dates, last access time, last modification time, and inode change time (which is often mistaken for creation time). Mac OS X also maintains the file creation time, and it's accessible using the GetFileInfo command:

$ GetFileInfo -d .bash_profile 10/08/2015 09:26:35 

Here's a more complete example:

$ ls -l my_file.py ls: my_file.py: No such file or directory $ touch my_file.py $ stat -x my_file.py   File: "my_file.py"   Size: 0            FileType: Regular File   Mode: (0644/-rw-r--r--)         Uid: (  501/     blm)  Gid: (   20/   staff) Device: 1,5   Inode: 26863832    Links: 1 Access: Sun Dec  6 13:47:24 2015 Modify: Sun Dec  6 13:47:24 2015 Change: Sun Dec  6 13:47:24 2015 $ GetFileInfo my_file.py file: "/Users/blm/my_file.py" type: "\0\0\0\0" creator: "\0\0\0\0" attributes: avbstclinmedz created: 12/06/2015 13:47:24 modified: 12/06/2015 13:47:24 $ echo hello >my_file.py $ stat -x my_file.py   File: "my_file.py"   Size: 6            FileType: Regular File   Mode: (0644/-rw-r--r--)         Uid: (  501/     blm)  Gid: (   20/   staff) Device: 1,5   Inode: 26863832    Links: 1 Access: Sun Dec  6 13:47:24 2015 Modify: Sun Dec  6 13:47:35 2015 Change: Sun Dec  6 13:47:35 2015 $ GetFileInfo my_file.py file: "/Users/blm/my_file.py" type: "\0\0\0\0" creator: "\0\0\0\0" attributes: avbstclinmedz created: 12/06/2015 13:47:24 modified: 12/06/2015 13:47:35 $ cat my_file.py hello $ stat -x my_file.py   File: "my_file.py"   Size: 6            FileType: Regular File   Mode: (0644/-rw-r--r--)         Uid: (  501/     blm)  Gid: (   20/   staff) Device: 1,5   Inode: 26863832    Links: 1 Access: Sun Dec  6 13:47:54 2015 Modify: Sun Dec  6 13:47:35 2015 Change: Sun Dec  6 13:47:35 2015 $ GetFileInfo my_file.py file: "/Users/blm/my_file.py" type: "\0\0\0\0" creator: "\0\0\0\0" attributes: avbstclinmedz created: 12/06/2015 13:47:24 modified: 12/06/2015 13:47:35 

Note that using vim to test this may be misleading because vim will write your modified file to a new temporary file, then rename the old one and the new one, so the creation time will be updated to when the file was written. See this post for a workaround I came up with for that.

like image 147
blm Avatar answered Oct 28 '22 05:10

blm