Modifica data creata in base al nome file

1

Ho scaricato un po 'delle mie immagini di Instagram ma la Data di creazione dei file è impostata sul momento in cui ho avviato il download. Quello che ho però è la data creata nel nome del file. Quello che voglio fare è prendere la data nel nome del file, che ho cambiato in YYYYMMDDhhmm, e impostarla come la data di creazione di ogni file.

Ho modificato la data nel nome file in YYYYMMDDhhmm perché questo è il formato a cui piace il comando touch -t . Ora tutto ciò di cui ho bisogno è un modo per prendere i primi 12 caratteri del nome del file, passarlo a touch -t come la data in cui toccare il file e seguirlo con il nome file completo.

Immagino che questo potrebbe essere realizzato con una combinazione di Hazel e una shell / AppleScript in modo che la data possa essere passata da ogni singola immagine.

Saluti per qualsiasi aiuto:)

    
posta smithjw 20.08.2012 - 07:28
fonte

2 risposte

1

Quindi dopo un po 'di caccia mi sono imbattuto in questo piccolo AppleScript su Mac OS X Suggerimenti. Grazie Krioni ! Sono sicuro che con qualche ritocco potrei modificarlo per lavorare con i miei nomi di file, ma ho modificato i nomi dei file di immagine per adattarli allo 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

Cerca semplicemente il secondo elemento di testo del nome del file tra i caratteri di sottolineatura e lo utilizza come data. Quindi aggiunge "1000" come tempo al comando touch . Speriamo che questo aiuti qualcun altro là fuori.

Il thread originale può essere trovato qui .

    
risposta data 21.08.2012 - 03:02
fonte
1

touch -t modifica la data di creazione solo se la data di destinazione (modifica) è precedente alla data di creazione originale.

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

SetFile -d modifica sempre la data di creazione.

-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 fa parte del pacchetto di strumenti della riga di comando che può essere scaricato da developer.apple.com/downloads o dalle preferenze di Xcode .

    
risposta data 15.01.2013 - 08:32
fonte

Leggi altre domande sui tag