Spesso mi è capitato durante la normale manutenzione della mia home, delle directory di building o durante interventi sistemistici vari, di dover ripetere un task su una lista di file.
Di solito utilizzo spontaneamente l'approccio da coder:
rpl@ubik:~$ LIST=`find -iname "*~"`
rpl@ubik:~$ for i in $LIST; echo $i; done
[...]
Il che non è sbagliato... funziona...
Ma il bello del lavorare in team è lo scambio di abitudini e conoscenze continuo e
naturale, e oggi Domenico M. mi ha fatto notare che c'e' un modo più compatto
e sistemistico per svolgere lo stessa operazione:
rpl@ubik:~$ find -iname "*~" -exec echo '{}' \;
Ma il bello è che ce ne sarebbe ancora un'altra (e chissa quante altre):
rpl@ubik:~$ find -iname "*~" | xargs echo
e allora quale usare?
beh... de gustibus.
Il primo metodo è un for vero e proprio e si puo' utilizzare in generale con ogni stringa
che contenga un elenco di elementi separati da spazi, gli altri sono sicuramente
più manegevoli quando la lista andrebbe comunque generata con un find ;-)
0 commenti:
Posta un commento