Setting file creation date in Mac OS X

4

4

I need a script to set the creation date to the modification date for a bunch of files created by my sound recorder - any way to do this? Running Mac OS X 10.4.11

Red Miller

Posted 2009-11-12T21:57:17.797

Reputation:

Just to help you find a solution: this is stored in the "HFS meta data", in kMDItemFSCreationDate. (UNIX by itself has no notion of a creation date. See http://superuser.com/questions/43310/os-x-unix-shell-command-possible-to-get-last-opened-date-of-file/43319#43319 for some details, but that doesn't describe how to change it.)

– Arjan – 2009-11-13T08:43:27.607

Answers

8

You can use SetFile on the command line to do this however it is not included by default in Mac OS X 10.4.x (Tiger). If you have installed the Developer Tools or most of the Combo updates it is installed but in a non standard location. SetFile was included in /usr/bin/ for Mac OS X 10.5 and later.

To find the command you can try using locate to find the location.

Assuming you have the Developer Tools installed:

/Developer/usr/bin/SetFile -d '12/31/2008 12:00:00 PM' nameoffile.txt

You can use another program called GetFileInfo that is installed with SetFile to obtain the modification date.

/Developer/usr/bin/GetFileInfo nameoffile.txt

An example script for one file:

#! /bin/bash
# Usage: nameOfThisScript.sh nameOfFile.txt

modifiedDate=`/usr/bin/GetFileInfo -m $1`
/usr/bin/SetFile -d "$modifiedDate" $1

Chealion

Posted 2009-11-12T21:57:17.797

Reputation: 22 932

1Thanks a lot Chealion! Just what I was looking for. Here's the script so far:

#!/bin/bash

for i in /Users/MacHD/Music/h2dropbox/*

do

modifiedDate=/Developer/Tools/GetFileInfo -m $i /Developer/Tools/SetFile -d "$modifiedDate" $i echo $i

done – None – 2009-11-16T19:13:09.547