Michele Liberi software

versione 1.03, 1 settembre 2022

Michele Liberi
mail: mliberi@gmail.com
cell: 3485211456

liberix

mvfl, rinomina una lista di files

Il comando mvfl è un potenziamento del comando mv.

A differenza del comando mv, il comando mvfl lavora su liste di files e non su singoli files.

I nomi dei files da rinominare, ed i nuovi nomi da dare ad essi, vengono letti da standard input. La prima riga contiene il nome del file da rinominare, la seconda riga contiene il nuovo nome da dare a quel file. Successivamente tutte le righe dispari contengono i nomi di files esistenti, le righe pari i nuovi nomi da assegnare.

Con questa tecnica si ottiene un molto notevole aumento di efficienza delle script che devono rinominare molti files. Infatti richiamare N volte il comando mv implica N operazioni di fork()/exec(), molto dispendiose in termini di tempi di esecuzione. La tecnica di usare le wildcard è fonte di potenziali errori e conseguenti malfunzionamenti perché una singola riga di comando ha una lunghezza finita, e quindi l'espansione delle wildcard ad opera della shell può fallire.

Un'altra modalità di lavoro (opzione -n) prevede che stdin contenga solo i nomi dei file esistenti, ed un altro file contenga i nuovi nomi.

Una terza modalità di lavoro (opzione -t) prevede che stdin contenga solo i nomi dei files esistenti da spostare, con lo stesso nome, in una unica directory destinazione.

È possibile proteggere (opzione -i) la sovrascrittura di files esistenti, ed è anche possibile (opzione -k) lasciare al posto del vecchio nome un symlink che punta al nuovo nome.

Per ulteriori informazioni sulle opzioni disponibili lanciare il comando mvfl -h.