Data di creazione di set ricorsivo di immagini e video in base al nome del file

0

Ho una struttura a cartelle di migliaia di immagini e video. Sono tutti esportati e quindi hanno la stessa data di creazione, ora. Vorrei impostare la data di creazione per tutti i file in base ai nomi che hanno. Tutti i file seguono la stessa convenzione di denominazione e hanno la data e l'ora nel nome del file.

Esempio:

Pictures (top folder)
-- Folder 1
---- 2010-05-03
------ 2010-05-03 at 11-58-32.jpg
------ 2010-05-03 at 11-59-32.jpg
------ 2010-05-03 at 12-58-32.jpg
---- 2010-07-04
------ 2010-07-04 at 11-58-32.jpg
------ 2010-07-04 at 12-01-32.mov
-- Folder 2
---- 2090-03-03
------ 2010-03-03 at 10-01-32.jpg
------ 2010-03-03 at 11-01-32.jpg

La mia versione attuale del codice include il comando touch e vado ricorsivo attraverso la struttura delle cartelle, ma questo sembra bloccarsi dopo la prima volta che raggiungo il percorso della cartella più basso.

for dir in Pictures/*; do
    if [[ -d "$dir" ]]; then
    cd "$dir"
        for dir2 in *; do
            if [[ -d "$dir2" ]]; then
            cd "$dir2"
            for f in *; do
                t=$(echo $f | sed -E 's/([A-z]*-)|([A-z ,;])|(\..*)//g' | sed -E 's/(.*)(..)/./')
                touch -t $t "$f"
                done            
            cd -
            fi
        done
    cd -
    fi
done

Ho anche pensato al comando find, ma non sono sicuro di come estrarre data e ora dal nome del file per il comando touch.

    
posta hausii 08.02.2015 - 21:27
fonte

1 risposta

2

Non sto rispondendo direttamente alla tua domanda, ma potresti prendere in considerazione un altro approccio. La maggior parte delle fotocamere registra la data di creazione all'interno del file in Exif data.

Ci sono molti modi per accedere a questo, ma c'è uno strumento da riga di comando jhead link Questo funziona su molte piattaforme, e ha la possibilità di estrarre volte Exif ed eseguire modifiche basate su queste.

Ho un flusso di lavoro di Automator (usando jhead) per fare ciò per gli elementi selezionati (Avrei incollato il flusso di lavoro, ma non riesco a farlo.)

    
risposta data 09.02.2015 - 01:24
fonte

Leggi altre domande sui tag