versione 1.03, 1 settembre 2022
![]() | ![]() |
Michele Liberi mail: mliberi@gmail.com cell: 3485211456 |
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.