Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Dimmi con chi vai e ti dir? se vengo anch'io.

Marcello Marchesi 

Sondaggio:

Qual'? la canzone pi? bella di Battisti?

Amarsi un po'
I giardini di marzo
Emozioni
Pensieri e parole
Fiori rosa fiori di pesco
Acqua azzurra, acqua chiara
Mi ritorni in mente
Non ? Francesca
Ancora tu
Un'avventura
Si viaggiare
Altro

visualizza risultati


 

Un'ultima parola su find

Tenete a mente che find è un comando che prende moltissimo tempo, dato che deve accedere a tutti gli inode del sistema per operare. È quindi saggio combinare tutte le operazioni che vi servono in un'unica invocazione di find, specialmente nei lavori di "pulizia" fatti da crontab.

Un esempio illuminante è questo: supponiamo di voler cancellare i file che finiscono con .BAK e cambiare le protezioni di tutte le directory a 771 e quelle dei file che finiscono con .sh a 755. E magari stiamo montando dei filesystem via NFS su un collegamento via modem, e non vogliamo controllare quei file. Perché scrivere tre comandi separati? Il modo più efficace di portare a termine il compito è questo:

% find . \( -fstype nfs -prune \) -o \
         \( -type d -a -exec chmod 771 {} \; \) -o \
         \( -name "*.BAK" -a -exec /bin/rm {} \; \) -o \
         \( -name "*.sh" -a -exec chmod 755 {} \; \)

Sembra brutto (e che spreco di barre rovesciate!), ma guardando attentamente rivela che la logica che c'è sotto è molto lineare. Ricordate che quello che fa in realtà è una valutazione vero/falso; il comando compreso è solo un effetto secondario. Ma ciò significa che viene fatto solo se find deve valutare la parte exec dell'espressione, cioè solo se il lato sinistro della sottoespressione rende vero. Quindi, se per esempio il file considerato al momento è una directory viene valutato il primo exec ed i permessi dell'inode vengono cambiati a 771; altrimenti se ne dimentica e passa alla seconda sottoespressione. Probabilmente è più semplice vederlo in pratica che scriverlo, ma dopo un po' diventerà una cosa naturale.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso