Bash: riorganizzazione rapida di immagini e video

| |

Ho scaricato una quantità elevata di video e fotografie da vecchi supporti ottici, tutti scatti di amici e famiglia che non ho mai organizzato in Libreria Foto di Apple o caricato su Flickr (dal quale toccherà levare le tende quanto prima, ma questo è un altro argomento di cui discutere), con l’intenzione di metterli a posto e tenerli sotto un backup un pelo più affidabile.
Mi sono ritrovato con cartelle difficilmente esplorabili e utilizzabili da Finder (su macOS), ho quindi cercato di saltare l’ostacolo riorganizzando quei file in gruppi di 300 immagini o 50 video per ciascuna cartella, appoggiandomi a degli script di bash che ho avviato sul NAS, dove ho inizialmente spostato il materiale.

Bash: riorganizzazione rapida di immagini e video

picsMover.sh e vidsMover.sh si occupano rispettivamente di rinominare i file JPEG/JPG/jpeg in jpg (case sensitive) e MP4 in mp4 (medesima sorte), quindi spostarli in cartelle che verranno create automaticamente, 300 immagini o 50 video per ciascuna di queste (chiamate PICS_X e VID_X, dove X è il numero progressivo della cartella).

Ho caricato entrambi gli script su Gist, così che tu possa recuperarli facilmente e riutilizzarli come meglio credi.

picsMover.sh

#!/bin/bash
# Blocco rename da JPG/JPEG/jpeg a jpg
# Credits: https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x4055.htm
for i in *.JPG;
do mv $i ${i%%.JPG}.jpg;
done
for i in *.JPEG;
do mv $i ${i%%.JPEG}.jpg;
done
for i in *.jpeg;
do mv $i ${i%%.jpeg}.jpg;
done
# Riorganizzo le immagini in cartelle in blocchi da 300 ($c -eq 300)
# Credits: https://unix.stackexchange.com/posts/180105/revisions
c=1; d=1; mkdir -p PICS_${d}
for jpg_file in *.jpg
do
if [ $c -eq 300 ]
then
d=$(( d + 1 )); c=0; mkdir -p PICS_${d}
fi
mv "$jpg_file" PICS_${d}/
c=$(( c + 1 ))
done
view raw picsMover.sh hosted with ❤ by GitHub

vidsMover.sh

#!/bin/bash
# Blocco rename da MP4 a mp4
for i in *.MP4;
do mv $i ${i%%.MP4}.mp4;
done
# Riorganizzo i video in cartelle in blocchi da 50 ($c -eq 50)
c=1; d=1; mkdir -p VID_${d}
for vid_file in *.mp4
do
if [ $c -eq 50 ]
then
d=$(( d + 1 )); c=0; mkdir -p VID_${d}
fi
mv "$vid_file" VID_${d}/
c=$(( c + 1 ))
done
view raw vidsMover.sh hosted with ❤ by GitHub

Provati tutti e due sul mio Synology DS216j, il quale ha portato a termine il suo mestiere. Per entrambi i codici valgono crediti e ringraziamenti a chi mi ha inconsapevolmente messo sulla via giusta per ottenere il risultato sperato:

Buon lavoro! :-)

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio lascia un commento!

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments