Since the macOS Finder destroys file dates when moving files from one volume to another, I needed a fix for the thousands of images whose metadata had been destroyed.
I considered writing code to do so, and might still do so because for a few reasons. But for now I wanted a fix for the wanton destruction wrought by Apple Core Rot.
UPDATE: the easier/better way for most users to do this fix is to Use Graphics Converter to Fix Image File Dates.
This solution works at the command line.
Step 0: make a backup first, or three
This goes without saying when running wholesale changes: make a backup or three.
As with any wholesale data change, I strongly recommend using diglloydTools IntegrityChecker to validate data.
Use IntegrityChecker first to update all files, then backup, then verify the backup, then after using exifool, verify again; IntegrityChecker should detect and report “HASHES_MATCH_DATE_CHANGED” for all files for which the dates were updated.
Step 1: download and install exiftol.
Download and install MacOS package for exiftool:
Step 2: run exiftool
This has to be done in Terminal at the command line.
First, open a Terminal window eg /Applications/Utilities/Terminal.
I’ll give several examples—lines starting with a # are comments.
Example using exiftool
- The quotes shown are straight quotes and are critical; do not omit the quotes.
- The change will fail on locked DNG files.
# Example #1: change to desired directory/folder, change all items recursively cd <directory-containing-affected-files>
exiftool "-DateTimeOriginal>FileCreateDate" -v -r . # Example #2: change all items on a volume name "Master", recursively exiftool "-DateTimeOriginal>FileCreateDate" -v -r "/Volumes/Master"
If it desired to set both the file creation and the file modification date to "DateTimeOriginal", substituted "FileModifyDate" for "FileCreateDate" in the commands above. This might or might not be desirable, e.g., when a file actually has been modified but has not had this date destroyed by the macOS Finder bug.
Roland Van B writes
Maybe this is related: Moving mail with apple mail from one mailbox account to another account (@icloud to @outlook) resulted into changed mail dates (move date). Doing this task with MS outlook software does work correctly by keeping the original dates.
MPG: hard to say since Apple Mail is the buggiest software I use.
Andreas Y writes:
I’m surprised you’re not looking at ZFS with your interest in data integrity. All the data that I care about resides on ZFS volumes attached to a Linux server. ZFS on MacOS is an active project.
MPG: doesn’t have any data integrity on backups, will surely cause compatbility issues, is a massive memory hog, is not immune from bugs, is a DIY unsupported thing—science fair stuff until officially supported. As for data integrity, IntegrityChecker is far more useful and general solution that is cross platform, cross file-system, and works on originals and backups and readwrite and read-only archival volumes.