script rinomina

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
topus
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 913
Iscrizione: lunedì 17 ottobre 2005, 15:10
Località: Torino

script rinomina

Messaggio da topus »

chissà se un'anima gentile mi dà un aiuto facilissimo per chi sa ...

ho impostato la mia reflex su 2020 anziché 2021.
le foto hanno data 2020.
ho bisogno che abbiano 2021 per poterle unire a quelle del telefono in modo che restino ordinate.

cioè cambiare una lista di 2020-08-xx_xx-xx-xx.jpg in 2021-08-xx_xx-xx-xx

c'è qualcuno che mi suggerisce uno script con cui utilizzare mv? (o anche qualcosa di più sofisticato!)

grazie!
Welcome to paradise, this is your harp.
Welcome to hell, here's your accordion.
saxtro
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 4 giugno 2006, 13:16
Distribuzione: Kubuntu 20.04

Re: script rinomina

Messaggio da saxtro »

Credo non sia sufficiente il nome. Di solito i programmi che gestiscono le foto, utilizzano la data dei metadata.
Per la rinomina massiva, se hai tutte le foto in una directory, e ci sono solo le foto da rinominare, è sufficiente eseguire il loop:

Codice: Seleziona tutto

for file in $(ls -1|grep 2020-08); do NUOVO=`echo $file|perl -pe s/2020/2021/g`; mv $file $NUOVO; done
Esempio:

Codice: Seleziona tutto

utente@pc:~/test$ ls -1
2020-08-01_xx-xx-xx.jpg
2020-08-02_xx-xx-xx.jpg
2020-08-03_xx-xx-xx.jpg
utente@pc:~/test$ for file in $(ls -1|grep 2020-08); do NUOVO=`echo $file|perl -pe s/2020/2021/g`; mv $file $NUOVO; done
utente@pc:~/test$ ls -1
2021-08-01_xx-xx-xx.jpg
2021-08-02_xx-xx-xx.jpg
2021-08-03_xx-xx-xx.jpg
Attenzione: quando ho scritto "se hai tutte le foto in una directory", intendevo, tutte le foto da rinominare, non tutte in assoluto
Avatar utente
trekfan1
Moderatore Globale
Moderatore Globale
Messaggi: 23402
Iscrizione: domenica 21 maggio 2006, 10:51
Desktop: Gnome
Distribuzione: Ubuntu 23.10 e 24.04 (dev)
Sesso: Maschile
Località: Formigine (MO) | Accecante Asceta

Re: script rinomina

Messaggio da trekfan1 »

E il mio consiglio è di provare su una copia di backup prima
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40301
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: script rinomina

Messaggio da steff »

In alternativa programmi di gestione foto come shotwell o digikam permettono di modificare la data per tutti file selezionati.
Modifica il titolo magari, la rinomina non risolverebbe l'ordinamento per data.
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4444
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: script rinomina

Messaggio da UbuNuovo »

Se tutte le foto da rinominare sono nella stessa directory, basta eseguire da quella directory:

Codice: Seleziona tutto

rename -n 's/2020/2021/' *.jpg
con l'opzione -n viene simulata la rinomina, una volta constatato il buon funzionamento eseguire il comando senza -n
Salva l'Ucraina! 🇺🇦
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: script rinomina

Messaggio da vaeVictis »

L'osservazione di saxtro però è sensata, andrebbe aggiornato anche il metadato della foto associato alla data.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4444
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: script rinomina

Messaggio da UbuNuovo »

Per cambiare i meta si può usare exiftool, per immagini nella stessa directory si può usare il globbing, tipo:

Codice: Seleziona tutto

exiftool OPZION_TAG *.jpg
Non ricordo il tag da usare, si dovrebbe vedere la pagina man, ora non posso.

edit:
Con il comando che segue si aumenta di uno il valore dell'anno nei campi: Modify Date, Date/Time Original e Create Date, di tutti i file .jpg.

Codice: Seleziona tutto

exiftool -AllDates+="1:0:0 0" *.jpg
Ho provato con alcune vecchie foto, del tipo 'DSCF0001.JPG' quindi ho usato:

Codice: Seleziona tutto

exiftool -AllDates+="1:0:0 0" D*
prima

Codice: Seleziona tutto

 8-) exiftool D*.JPG | grep -i 'date'
File Modification Date/Time     : 2010:01:02 01:02:26+01:00
File Access Date/Time           : 2021:08:22 13:31:19+02:00
File Inode Change Date/Time     : 2021:08:22 13:30:40+02:00
Modify Date                     : 2010:01:02 02:02:26
Date/Time Original              : 2010:01:02 02:02:26
Create Date                     : 2010:01:02 02:02:26
eseguo il comando

Codice: Seleziona tutto

 8-) exiftool -AllDates+="1:0:0 0" D*
    1 image files updated
dopo

Codice: Seleziona tutto

 8-) exiftool D*.JPG | grep -i 'date'
File Modification Date/Time     : 2021:08:22 13:32:26+02:00
File Access Date/Time           : 2021:08:22 13:32:29+02:00
File Inode Change Date/Time     : 2021:08:22 13:32:26+02:00
Modify Date                     : 2011:01:02 02:02:26
Date/Time Original              : 2011:01:02 02:02:26
Create Date                     : 2011:01:02 02:02:26
 8-) 
I campi che iniziano con "File" sono estrapolati dal file system.

Se non si usa '-delete_original', exiftool crea una copia di backup dei file originali, aggiungendo '_original' dopo l'estensione.
Se si vogliono eliminare i file di backup, nel mio caso (ho JPG maiuscolo), basta eseguire:

Codice: Seleziona tutto

rm -f *.JPG_original
Riassumendo: nel tuo caso (estensione minuscola), rinomini i file con:

Codice: Seleziona tutto

rename -n 's/2020/2021/' *.jpg
cambi ii meta con:

Codice: Seleziona tutto

exiftool -AllDates+="1:0:0 0" *.jpg
elimini i file di backup, con:

Codice: Seleziona tutto

rm -f *.jpg_original
Salva l'Ucraina! 🇺🇦
saxtro
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 4 giugno 2006, 13:16
Distribuzione: Kubuntu 20.04

Re: script rinomina

Messaggio da saxtro »

@UbuNuovo : nella parte "Riassumendo", manca lo step per creare i files *.jpg_original.
Non mi è neanche venuto in mente rename, ma ottimo consiglio, e nella filosofia: "Mai usare un procedura complicata, se ne esiste una più semplice che fà la stessa cosa!" è il consiglio da seguire.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4444
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: script rinomina

Messaggio da UbuNuovo »

I file _original li crea exiftool automaticamente, a meno che non gli si dica di non farlo con -overwrite o .-delete_original.
Io sono dell'idea di farli creare, controllare che tutto sia a posto e poi cancellarli.
Salva l'Ucraina! 🇺🇦
Avatar utente
topus
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 913
Iscrizione: lunedì 17 ottobre 2005, 15:10
Località: Torino

Re: script rinomina

Messaggio da topus »

sono stato in giro grazie a tutti poi rileggo meglio ... mi accontento di cambiare il nome per poterle unire a quelle del cell. se poi si può cambiare anche il metadata senza fatica, tanto meglio.... domani vi aggiorno
Welcome to paradise, this is your harp.
Welcome to hell, here's your accordion.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot], UbuNuovo e 6 ospiti