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

Chealion
  • 25,408
  • 8
  • 67
  • 75
  • 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 Nov 13 '09 at 08:43

1 Answers1

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
  • 25,408
  • 8
  • 67
  • 75
  • 1
    Thanks 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 –  Nov 16 '09 at 19:13