Cambiar fecha de creación según el nombre de archivo

1

He descargado algunas de mis imágenes de Instagram pero la Fecha de creación de los archivos está configurada en el momento en que inicié la descarga. Lo que sí tengo es la fecha de creación en el nombre del archivo. Lo que quiero hacer es tomar la fecha en el nombre del archivo, que he cambiado a AAAAMMDDhhmm, y establecerlo como la fecha de creación de cada archivo.

Cambié la fecha en el nombre de archivo a YYYYMMDDhhmm porque este es el formato que le gusta al comando touch -t . Ahora todo lo que necesito es una forma de tomar los primeros 12 caracteres del nombre de archivo, pasarlo a touch -t como la fecha para tocar el archivo y seguir con el nombre completo.

Me imagino que esto podría lograrse con una combinación de Hazel y un shell / AppleScript para que la fecha se pueda pasar de cada imagen individual.

Saludos por cualquier ayuda :)

    
pregunta smithjw 20.08.2012 - 07:28

2 respuestas

1

Entonces, después de algo de caza, me topé con este pequeño AppleScript en Mac OS X Hints. Gracias Krioni ! Estoy seguro de que con algunos retoques podría modificarlo para que funcione con mis nombres de archivo, pero simplemente edité por lotes los nombres de los archivos de imagen para que encajen con el script.

on open files_
    repeat with file_ in files_
        tell application "Finder"
            set file_name to name of file_
            set od to AppleScript's text item delimiters
            set AppleScript's text item delimiters to {"_"}
            set new_creation_date to second text item of file_name
            set new_creation_date to new_creation_date & "1000"
            set file_ to POSIX path of file_
            do shell script "touch -t " & new_creation_date & " " & quoted form of file_
            set AppleScript's text item delimiters to od
        end tell
    end repeat
end open

Simplemente busca el segundo elemento de texto del nombre de archivo entre los guiones bajos y lo usa como fecha. Luego agrega "1000" como el tiempo al comando touch . Esperemos que esto ayude a alguien más por ahí.

El hilo original se puede encontrar aquí .

    
respondido por el smithjw 21.08.2012 - 03:02
1

touch -t solo cambia la fecha de creación si la fecha objetivo (modificación) es anterior a la fecha de creación original.

for f in *.jpg; do touch -t ${f% *} "$f" && mv "$f" "${f#* }"; done

SetFile -d siempre cambia la fecha de creación.

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]"

for f in *.jpg; do date=$(printf %s "$f" | sed -E 's|^(....)(..)(..)(..)(..).*|/// :|'); SetFile -m "$date" -d "$date" "$f" && mv "$f" "${f#* }"; done

SetFile es parte del paquete de herramientas de la línea de comandos que se puede descargar desde developer.apple.com/downloads o las preferencias de Xcode .

    
respondido por el user495470 15.01.2013 - 08:32

Lea otras preguntas en las etiquetas