Cambiare l'estensione di un insieme di file può essere un'operazione comune, specialmente se si lavora frequentemente con file di testo, immagini, o documenti che devono essere convertiti in formati diversi. Questo processo può essere automatizzato con uno script Bash, rendendolo efficiente e veloce. In questo articolo, vedremo come creare uno script Bash che permette di modificare l'estensione di un insieme di file, passando la nuova estensione come parametro.
All'inizio del file, aggiungi la riga seguente per indicare al sistema che questo script deve essere eseguito con Bash:
#!/bin/bash
Lo script accetterà due parametri: la vecchia estensione e la nuova estensione. Aggiungi la seguente sezione per verificare che i parametri siano stati forniti:
if [ "$#" -ne 2 ]; then
echo "Usage: $0 old_extension new_extension"
exit 1
fi
Questa parte del codice verifica che l'utente abbia fornito esattamente due argomenti. Se non lo fa, lo script mostra un messaggio di utilizzo corretto e termina l'esecuzione.
I parametri forniti dall'utente verranno memorizzati in variabili per facilitarne l'uso:
old_extension=$1
new_extension=$2
A questo punto, possiamo implementare la logica per modificare l'estensione dei file. Lo script cercherà tutti i file con la vecchia estensione nella directory corrente e li rinominerà con la nuova estensione.
for file in *.$old_extension; do
if [ -f "$file" ]; then
base_name=$(basename "$file" .$old_extension)
mv "$file" "$base_name.$new_extension"
echo "Renamed $file as $base_name.$new_extension"
fi
done
In questo ciclo:
for file in *.$old_extension
scorre tutti i file che corrispondono alla vecchia estensione.- La variabile
base_name
estrae il nome del file senza l'estensione. - Il comando
mv
rinomina il file sostituendo la vecchia estensione con quella nuova. - Infine, viene stampato un messaggio che conferma il rinominamento di ciascun file.
Dopo aver salvato il file, rendilo eseguibile con il comando:
chmod +x change_extension.sh
Ora puoi eseguire lo script direttamente dal terminale. Supponiamo di voler cambiare l'estensione di tutti i file .txt
in .md
. Esegui il comando come segue:
./change_extension.sh txt md
Questo comando rinominerà tutti i file con estensione .txt
nella directory corrente in .md
.
Conclusione
Questo semplice script Bash è un potente strumento per automatizzare il processo di modifica delle estensioni dei file. Può essere facilmente esteso o modificato per includere ulteriori funzionalità, come operare su sottodirectory o filtrare file in base a criteri aggiuntivi. Sperimentare con Bash scripting permette di migliorare la propria efficienza e di risolvere problemi comuni in modo elegante e automatizzato.