Hello everyone, Joe Newbie here. Welcome to my first script; well sorta. I am actually modifying someone else's script and I need some help. The original script rotated image files to the left but it changed the "modified date stamp" which is something I didn't want.

while [[ -n "$1" ]]; do
    #if a file and not a dir
    if [[ -f "$1" ]]; then
        #the images that I copy from my cell phone don't have exif headers
        #so I am using the -mkexif switch first to match the exif information
        #to the "created date" in the .jpg file. 
        jhead -mkexif "$1"

        #by default, jpegtran will only copy some
        # Exif data, so we'll specify "all"
        jpegtran -rotate 270 -copy all -outfile "$1" "$1"

        #Then the next line uses the -ft switch which will match the "modified date" 
        #using the exif date and time previously matched from the first line
        #of this script.
        jhead -ft "$1"
        #clear rotation/orientation tag so that
                # some viewers (e.g. Eye of GNOME) 
                # won't be fooled
        jhead -norot "$1"
I've done batch files in DOS years ago so there are a lot of similarities of course. And I'm not looking for someone to just fix this for me but to also explain to me what I'm doing that is causing the incorrect behavior. Is there a more elegant way of doing this?

And BTW, it actually does what I'm asking it to do but only when I do something I consider quite odd.

1) I right click on the .jpg and select rotate left.
2) The file responds by flipping 180 degrees 'instead' of 90 degree counter clockwise.
3) I refresh the file manager and nothing happens.
4) I 'touch" the file with my pointer (it doesn't matter if I "touch" it with a left or a right mouse click) and it correctly orients itself.

It's important to note that the original script, before I made any edits, did not have this quirk whereas I needed to "touch" the file to get it to orient itself correctly. The 'original' script is in black; my additions are in blue.