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 ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

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.

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

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

0 Commenti
Inline Feedbacks
View all comments