Michele Liberi software

versione 1.03, 1 settembre 2022

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

liberix

lnfl, collegamento di una lista di files

Il comando lnfl è un potenziamento del comando ln.

A differenza del comando ln, il comando lnfl lavora su liste di files e non su singoli files.

Ove possibile il comando lnfl crea hardlinks, se però sorgente e destinazione sono su filesystems differenti crea symlinks.

I nomi dei files da collegare, ed i nuovi nomi da dare ad essi, vengono letti da standard input. La prima riga contiene il nome del file sorgente, la seconda riga contiene il nuovo file da creare collegato al file sorgente. Successivamente tutte le righe dispari contengono i nomi di files esistenti, le righe pari i nuovi nomi da creare e collegare.

Con questa tecnica si ottiene un molto notevole aumento di efficienza delle script che devono collegare molti files. Infatti richiamare N volte il comando ln 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 -t) prevede che stdin contenga solo i nomi dei files esistenti da collegare, con lo stesso nome, in una unica directory destinazione.

È possibile forzare (opzione -r) la sovrascrittura di files esistenti, ed è anche possibile (opzione -n) impedire che venga creato un symlink qualora non fosse possibile creare un hardlink.

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