1 votos

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

He descargado un montón de mis imágenes de Instagram, pero la fecha de creación de los archivos se establece 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 YYYYMMDDhhmm, y establecer que como la fecha de creación de cada archivo.

He cambiado la fecha en el nombre del archivo en el YYYYMMDDhhmm porque este es el formato que el touch -t comando le gusta. Ahora todo lo que necesito es una manera de tomar los primeros 12 caracteres del nombre del archivo, pasarlo a touch -t como la fecha con la que tocar el archivo y seguirlo con el nombre completo del archivo.

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

Gracias por cualquier ayuda :)

1voto

pzenger Puntos 41

Así que después de buscar un poco me encontré 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 acabo de editar por lotes los nombres de archivo de las imágenes 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 del archivo entre guiones bajos y lo utiliza como fecha. A continuación, añade "1000" como el tiempo hasta el touch comando. Espero que esto ayude a alguien más por ahí.

El hilo original se puede encontrar aquí .

1voto

touch -t sólo cambia la fecha de creación si la fecha de destino (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|^(....)(..)(..)(..)(..).*|\2/\3/\1/ \4:\5|'); SetFile -m "$date" -d "$date" "$f" && mv "$f" "${f#* }"; done

SetFile forma parte del paquete de herramientas de línea de comandos que puede descargarse de developer.apple.com/downloads o las preferencias de Xcode.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X