fixing garmin file dates

While the Garmin GPSMap 60csx is a lovely unit, it saves its tracks on the card with a date just slightly younger than I am. The following Unix one-liner will correct the file dates to the actual dates the data were collected:

for f in 20??????.gpx; do touch -t ${f%.gpx}2359.59 $f; done

I remember having a really awesome reason for making the time for each file 23:59:59, but I’ve completely forgotten what it was. Since all I remember was the awesomeness, I see no reason to change it …

Update 2013-09-25: changed the call to basename with a Bash internal string function.