Add Dates To File Or Photo Names With an Automator Script

You can use a shell script inside an Automator Quick Action to add the date of a file to the beginning of the file's name. You can also make this work with photos using the date the photo was taken from the metadata in the file. As a Quick Action you can easily apply this name change to one or many files at once.



Shell script for renaming by file date:

for f in "$@"
do
	filedate=$(date -r $(stat -f %B $f) +%Y-%m-%d);
	filename=$f:t
	filepath=$f:h
	mv $filepath/{"$filename","$filedate $filename"}
done

Shell script for renaming by photo metadata date:

for f in "$@"
do
	filedate=$(mdls $f | grep kMDItemContentCreationDate -m 1 | awk '{print $3}');
	filename=$f:t
	filepath=$f:h
	mv $filepath/{"$filename","$filedate $filename"}
done

Comments: 16 Responses to “Add Dates To File Or Photo Names With an Automator Script”

    Dana Stevens
    10 months ago

    Felt obligated to comment since this is just the kind of content I enjoy. Someday I’ll be looking for a way to get a photo’s taken date into a script and I now have a solution. Thanks, Gary.

    David Sofi
    10 months ago

    Excellent tip; I’ve just renamed more than 6,000 photos I couldn’t organize by year without this. I tripped over trying to type in the terminal work before discovering I only needed to copy/paste your Automator Script. A+

    Graham Watson
    10 months ago

    Fantastic solution, Gary, and you have managed to introduce these complex concepts in an easily-understandable way. Thank you!

    Dan Stone
    10 months ago

    How can I modify the shell script to have the filedate but not including the original filename as the output.
    In other words, I would like to original file to be renamed as: 12-27-1995.jpg

    10 months ago

    Dan: Instead of the renaming going to “$filedate $filename” just have it as “$filedate.jpg”

    Al Cheshinski
    10 months ago

    When I run it the name moves one space to the right and stops.

    Al Cheshinski
    10 months ago

    It works on external discs. I have a personal cloud Drive that it is not working on must be some kind of permission problem. Thanks for the info.

    Peter Knight
    10 months ago

    Thanks Gary, this is exactly what I’ve been looking for. A couple of questions though.

    i) I can’t work out how to concatenate the date and the time with an underscore separating the two.
    ii) The date seems to be returned as a UTC value, not what is in the EXIF info
    iii) Rather than having colons as a separator between the hours minutes and seconds, forward slashes (/) are substituted
    iv) How can I remove the separators in both the date and time fields?

    Many thanks.

    JIm Rietz
    10 months ago

    I’m getting spaces like Al was. When I do mdls on a file directly by dropping it into terminal, there are only 15 constants displayed as null or empty and no kMDItemContentCreationDate listed. I’m running Mojave and suspect t his may be a Catalina only command.

    Charles Tutt
    10 months ago

    Very useful! Can’t wait to try it! Thanks Gary.

    10 months ago

    Peter: That’s going to take some string processing in your script. It is all possible, but only if you take the time to learn some more programming. Alternatively, you could use a regular batch rename in the Finder to do things like replace spaces with _. UTC is probably what is really in the EXIF info, you just see a converted value in Preview. I’m thinking there is probably a way to convert the string date in the shell script too, but it will take more research.

    Gene
    10 months ago

    Good video Gary. Can you do this inside the Photos App?

    10 months ago

    Gene: No. You can’t even set the file name of a photo manually inside the Photos app.

    Dennis
    10 months ago

    This is nice and a great explanation. Can Automator be used to stuff the ‘real’ date of a photo into the metadata field for the date the picture was taken? I’ve scanned pictures and they have a created/modified date in 2019 but I would like to identify them with the real point in time for which the picture was taken (i.e., our wedding date.)

    10 months ago

    Dennis: Possibly. But it will get a lot more complex. A Google search came up with some things, but I haven’t investigated them.

    Andreas
    10 months ago

    Congratulations Gary, this is what I’ve been looking for since apple abandoned Aperture. (In Aperture, there was a sophisticated renaming tool for files upon import).

Comments Closed.